Subject: Re: [Boost-bugs] [Boost C++ Libraries] #2219: conditional_variable_any::any fails to release recursive_mutex when mutex has been acquired by the same thread more than one time
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-01-16 19:09:12
#2219: conditional_variable_any::any fails to release recursive_mutex when mutex
has been acquired by the same thread more than one time
--------------------------------------+-------------------------------------
Reporter: brad_wade_at_[hidden] | Owner: anthonyw
Type: Bugs | Status: closed
Milestone: Boost 1.36.0 | Component: thread
Version: Boost 1.36.0 | Severity: Regression
Resolution: wontfix | Keywords: condition_variable_any recursive_mutex
--------------------------------------+-------------------------------------
Comment(by gpeele_at_[hidden]):
The core issue seems to be the POSIX implementation of recursive_mutex.
There is not enough information provided by POSIX to reliably save and
restore the lock count, and it's not clear how much performance would have
to be sacrificed to manage this state in the Boost recursive_mutex
implementation. Since nothing else would require this lock state
information, I assume that's why this design choice was chosen.
As mentioned, calling lock() and unlock() multiple times inside
condition_variable_any in would be unsafe, especially since this is very
specific to recursive_mutex and may break the behavior for other mutex
types.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/2219#comment:4> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:59 UTC