Boost C++ Libraries: Ticket #5144: interprocess_condition does not support interprocess_recursive_mutex https://svn.boost.org/trac10/ticket/5144 <p> on POSIX systems: do_wait() and do_timed_wait() methods are only implemented for interprocess_mutex so compilation fails for all other types. </p> <p> possible solution: make the mutex type in those methods a template parameter and add interprocess_condition as friend to interprocess_recursive_mutex (for access to m_mut, see interprocess_mutex) </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/5144 Trac 1.4.3 Ion Gaztañaga Fri, 01 Apr 2011 17:41:53 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/5144#comment:1 https://svn.boost.org/trac10/ticket/5144#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">wontfix</span> </li> </ul> <p> Recursive mutexes are not usable with condition variables in POSIX for some good reasons. For instance, if a recursively locked mutex were used with a condition variable, the unlock performed for a condition wait would not actually release the mutex, no other thread can satisfy the condition of the predicate, and the thread would wait indefinitely. </p> Ticket