Gilles Carry
Wed Jul 9 07:51:00 GMT 2008

Polina Dudnik wrote:
> Hi,
> I would like to write my own version of pthread_cond_wait, which doesn't 
> have a mutex as one of it's parameters, to be used with transactional 
> memory model. I am not sure why it is important to have the mutex locked 
> before calling lll_lock (cond->__data.__lock, pshared). What would 
> happen if the mutex was unlocked before calling lll_lock 
> (cond->__data.__lock, pshared). Thanks.

As far as I remember, the external mutex is to avoid loss of signals.
Releasing the external mutex before the internal one would let a time window
in which a signal could be issued before the waiter is put into the waiting queue.
Anyway, before modifying pthread_cond_* stuff, you should carefully read this:
and especially "Features of Mutexes and Condition Variables".

Hope this helps.


More information about the Libc-help mailing list