pthread_cond_wait

Gilles Carry Gilles.Carry@bull.net
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.

Hi,
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:
http://www.opengroup.org/onlinepubs/009695399/functions/pthread_cond_wait.html
and especially "Features of Mutexes and Condition Variables".

Hope this helps.

Gilles.



More information about the Libc-help mailing list