Re: [Boost-bugs] [Boost C++ Libraries] #4978: Deadlock on interrupt() all threads if they are in wait()

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