Subject: Re: [Boost-bugs] [Boost C++ Libraries] #4978: Deadlock on interrupt() all threads if they are in wait()
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-03-02 20:03:08
#4978: Deadlock on interrupt() all threads if they are in wait()
-------------------------------------+--------------------------------------
Reporter: d.schneider@⦠| Owner: anthonyw
Type: Bugs | Status: new
Milestone: To Be Determined | Component: thread
Version: Boost 1.46.0 | Severity: Showstopper
Resolution: | Keywords:
-------------------------------------+--------------------------------------
Comment (by moraleda@â¦):
Replying to [comment:1 moraleda@â¦]:
> To work around it, I have reordered the locks inside
thread::interrupt(), so they are acquired in the same order as in
condition_variable::wait()
My proposed work around does not actually work. The reason is that
cond_mutex is mutable and could be changed by another thread if data_mutex
is not locked. Thus changing the order of the lock could (and does) result
in a segmentation fault. I don't see a trivial fix, so I am reverting to
an earlier version of boost thread until this problem is fixed.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/4978#comment:3> 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:50:05 UTC