[Boost-bugs] [Boost C++ Libraries] #9055: spin_condition.notify()hangs if communication peer crashes

Subject: [Boost-bugs] [Boost C++ Libraries] #9055: spin_condition.notify()hangs if communication peer crashes
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-08-27 16:53:51


#9055: spin_condition.notify()hangs if communication peer crashes
------------------------------+--------------------------
 Reporter: stepan.seycek@… | Owner: igaztanaga
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: interprocess
  Version: Boost 1.54.0 | Severity: Problem
 Keywords: deadlock |
------------------------------+--------------------------
 When using interprocess_condition for signalling availability of new data
 in shared memory the call to notify_one() or notify_all() hangs forever if
 the communication peer terminates ungracefully. This happens because
 spin_condition.notify() calls m_enter_mut.lock().

 A possible solution that we apply in our project is to provide notify
 methods with a timeout argument and a boolean return value that call
 m_enter_mut.timed_wait(abs_time). The return value can then be handled
 accordingly.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9055>
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:14 UTC