Boost C++ Libraries: Ticket #5166: interprocess::message_queue does not work between 64 bits and 32 bits processes https://svn.boost.org/trac10/ticket/5166 <p> The boost::interprocess::message_queue class does not work between 64 and 32 bits processes on Windows (I am using Wndows 2008r2 x64). </p> <p> I found that problem in mq_hdr_t class. Members of this class has std::size_t type. But size of std::size_t is different in 64 and 32 bit versions. At current moment first code string of method message_queue::do_receive(...) do this: </p> <p> detail::mq_hdr_t *p_hdr = static_cast&lt;detail::mq_hdr_t*&gt;(m_shmem.get_user_address()); </p> <p> That is realization assigned a binary chunk from a shared memory to the pointer, not taking into account the fact that a 32 bit process size_t was 2 times smaller than 64 bit process. As a result, the data are shifted and the assigned are incorrectly. </p> <p> I do not know this bug or some sort of "feature"... - I could not find any restrictions on use of message_queue class in documentation. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/5166 Trac 1.4.3 Ion Gaztañaga Fri, 01 Apr 2011 17:16:50 GMT <link>https://svn.boost.org/trac10/ticket/5166#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/5166#comment:1</guid> <description> <p> It's definitely a bug, thanks for the report. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Ion Gaztañaga</dc:creator> <pubDate>Thu, 30 Jun 2016 20:21:46 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/5166#comment:2 https://svn.boost.org/trac10/ticket/5166#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">wontfix</span> </li> </ul> <p> Revisiting old bugs I've found this was not implemented to avoid breaking ABI of existing applications. Marked as wontfix. </p> Ticket