Re: [PATCH] Make xmalloc and xrealloc thread-safe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Mar 27, 2010 at 19:59, Nicolas Pitre <nico@xxxxxxxxxxx> wrote:
> On Sat, 27 Mar 2010, Fredrik Kuivinen wrote:
>
>> On Wed, Mar 24, 2010 at 21:22, Nicolas Pitre <nico@xxxxxxxxxxx> wrote:
>> > +static void try_to_free_from_threads(size_t size)
>> > +{
>> > +       read_lock();
>> > +       release_pack_memory(size, -1);
>> > +       read_unlock();
>> > +}
>> > +
>>
>> Will this really work in all cases? In the find_deltas -> try_delta ->
>> read_sha1_file -> ... -> xmalloc call path, the mutex is already
>> locked when we get to xmalloc.
>
> You're right.  Damn.

A simple fix is to make it a recursive mutex instead. This will work
with a minimal change in win32 as well as the CRITICAL_SECTION type is
recursive.

I guess the downside is that the locking potentially gets slightly slower.


- Fredrik
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]