Re: [Boost-bugs] [Boost C++ Libraries] #11728: interprocess::message_queue deadlocked when process exists unexpectedly on Windows

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #11728: interprocess::message_queue deadlocked when process exists unexpectedly on Windows
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-10-27 13:40:00


#11728: interprocess::message_queue deadlocked when process exists unexpectedly on
Windows
----------------------------------------+--------------------------
  Reporter: Lingxi Li <lilingxi.cs@…> | Owner: igaztanaga
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component: interprocess
   Version: Boost 1.59.0 | Severity: Showstopper
Resolution: | Keywords: deadlock
----------------------------------------+--------------------------

Comment (by Lingxi Li <lilingxi.cs@…>):

 Thanks for the reply. I just thought the library is no longer maintained.

 As to the issue, I think there is a not-so-difficult fix at least on
 Windows platforms. The keypoint is that mutex kernel object in Windows is
 indeed robust. Please see the description for the return value
 `WAIT_ABANDONED` on [this](https://msdn.microsoft.com/en-
 us/library/windows/desktop/ms687032(v=vs.85).aspx) MSDN page.

 With a robust mutex mechanism, the fix is pretty much straightforward.
 First, we synthesize a name for the mutex kernel object based on the name
 of the message queue which is supplied by the user. Then, everytime a
 process tires to access the message queue, it first creates or opens the
 mutex with the synthesized name. Note that this does not affect the kernel
 or filesystem persistence nature of the message queue.

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