Wed Jul 9 07:51:00 GMT 2008
Polina Dudnik wrote:
> 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