From: Michael Glassford (glassfordm_at_[hidden])
Date: 2004-11-03 11:56:59
"Vukasin Toroman" <vtoroman_at_[hidden]> wrote in message
>> It looks like a documentation bug to me.
> in mho, if a bug exists than it is in design. if a recursive mutex
> should not be used in a condition the condition should not accept
They are intended to be used together.
> this is either a design flaw (allowing the condition to accept
> recursive mutexes) or a implementation flaw (the condition should
> only unlock the recursive mutex once instead all the way).
I don't think that makes sense, though:
lock lock2(m); //Recursive lock
At the point marked "***", the thread calling c.wait() (call it thread
#1) is waiting for another thread (thread #2) to wake it up.
Presumably thread #2 will want to read or modify the resource
protected by m before doing so (otherwise there's not much point in
thread #1 waiting for it), but it won't be able to because the mutex
is still locked by thread #1. If it tries to obtain the mutex,
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk