From: Peter Dimov (pdimov_at_[hidden])
Date: 2004-07-12 12:35:40
Howard Hinnant wrote:
> I can't speak for the boost implementation (haven't carefully studied
> it), but the Metrowerks implementation also supports conditions
> operating on a recursive mutex. Our implementation (and I strongly
> suspect boost's as well) also supports conditions operating on
> non-recursive mutexes. The condition::wait<NonRecursiveMutex> /is/ a
> thin wrapper around pthread_cond_wait (when implemented on pthreads).
> Overhead is only incurred for condtion::wait<RecursiveMutex>.
> On the other hand, our Windows implementation of condition::wait
> follows the algorithm laid out by Alexander Terekhov's "Algorithm 8a"
> posted in comp.programming.threads on April 27, 2001 (and noted as
> such in that file Alexander). In this case the wait() function does not
> differ depending upon the recursiveness of the mutex.
To clarify: does your implementation support waiting on a recursive mutex
that has been locked more than once, temporarily decreasing its lock count
to zero to allow other threads to acquire the mutex while the original
thread is blocked by the wait?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk