Opened 11 years ago
Closed 9 years ago
#6745 closed Bugs (wontfix)
message_queue deadlock on Windows
Reported by: | Diapolo | Owned by: | Ion Gaztañaga |
---|---|---|---|
Milestone: | To Be Determined | Component: | interprocess |
Version: | Boost 1.49.0 | Severity: | Showstopper |
Keywords: | message_queue, Windows, interprocess | Cc: |
Description
I have a problem with the use of message_queue on Windows (7). I know the mq file resides in ProgramData/boost_interprocess, now I have an App that executes this simple calls:
interprocess::message_queue* mq; mq = new interprocess::message_queue(interprocess::open_only, BCQT_MQ_NAME);
The call to the mq constructor causes a deadlock, further code is never reached. This happens if I place a file into ProgramData/boost_interprocess that has the name of the mq file, but very different NTFS security descriptors compared to the file the boost code would create via create_only.
I searched the web all over and found this one BOOST_INTERPROCESS_ENABLE_TIMEOUT_WHEN_LOCKING, which I defined by #define BOOST_INTERPROCESS_ENABLE_TIMEOUT_WHEN_LOCKING, but it's not working no exception, still simply a deadlock :-/.
Any idea how I can handle this? I'm using boost 1.49 with this enabled:
#if defined(BOOST_INTERPROCESS_WINDOWS) #define BOOST_INTERPROCESS_HAS_WINDOWS_KERNEL_BOOTTIME #define BOOST_INTERPROCESS_HAS_KERNEL_BOOTTIME #include <boost/interprocess/detail/win32_api.hpp>
Any help would be super great :)!
Dia
Change History (2)
comment:1 by , 10 years ago
comment:2 by , 9 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
No news from the reporter so I'm closing this issue.
I tried to reproduce your bug with current trunk code without success. An exception is thrown when the message queue can't be created. Can you try with trunk code?