Ticket #3304 (closed Feature Requests: fixed)
Boost::interprocess message queues don't work if two processes are running as different users.
|Reported by:||scott_yoder@…||Owned by:||igaztanaga|
message_queue is using the TMP environment variable to determine where to put the file that implements a shared memory object (on Windows and Mac OS X). The TMP environment variable gives different paths for different users under Windows and Mac OS X. Also, there are permission problems that wont allow a queue created by a windows service (or daemon on Mac) to be read from / written to by a user mode process (see ticket #1080). This makes the message queue unusable for a fairly typical use case.
Suggested fix: create a new message_queue constructor that takes as parameters a file path to be used as a shared memory object and what kind of permissions this file should have.