Boost C++ Libraries: Ticket #11154: Constructing boost::interprocess::interprocess_semaphore throws in MacOS 10.9.5 https://svn.boost.org/trac10/ticket/11154 <p> Using boost::interprocess::interprocess_semaphore from Boost 1.56 and running MacOS 10.9.5, it simply throws an exception saying the function is not implemented: </p> <blockquote> <p> libc++abi.dylib: terminating with uncaught exception of type boost::interprocess::interprocess_exception: Function not implemented </p> </blockquote> <p> This is a regression from Boost 1.49 and MacOS 10.9.5, where this works fine. </p> <p> Looking at the two, it appears that 1.49 is using the generic spin emulation for interprocess_semaphore, whereas 1.56 is implementing interprocess_semaphore using POSIX unnamed semaphores, which aren't implemented in MacOS 10.9.5. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11154 Trac 1.4.3 Jonathan Jones <jonathan.jones@…> Mon, 30 Mar 2015 17:15:11 GMT attachment set https://svn.boost.org/trac10/ticket/11154 https://svn.boost.org/trac10/ticket/11154 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">interprocess_semaphore.cpp</span> </li> </ul> <p> Reproduction program </p> Ticket Ion Gaztañaga Tue, 31 Mar 2015 10:03:42 GMT <link>https://svn.boost.org/trac10/ticket/11154#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11154#comment:1</guid> <description> <p> Thanks for the report. It seems that Mac Os incorrectly reports POSIX semaphores as supported, this was fixed in master and develop branches, can you try Boost 1.58 Beta to confirm this was fixed for you? </p> </description> <category>Ticket</category> </item> <item> <author>Jonathan Jones <jonathan.jones@…></author> <pubDate>Tue, 31 Mar 2015 12:05:16 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/11154#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11154#comment:2</guid> <description> <p> Thanks for responding so quickly! </p> <p> Would it be possible for you to attach a patch to this bug report that we can apply to 1.56.0? </p> </description> <category>Ticket</category> </item> <item> <author>dave.lowell@…</author> <pubDate>Tue, 31 Mar 2015 14:28:53 GMT</pubDate> <title>cc set https://svn.boost.org/trac10/ticket/11154#comment:3 https://svn.boost.org/trac10/ticket/11154#comment:3 <ul> <li><strong>cc</strong> <span class="trac-author">dave.lowell@…</span> added </li> </ul> Ticket Ion Gaztañaga Tue, 31 Mar 2015 14:40:36 GMT <link>https://svn.boost.org/trac10/ticket/11154#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11154#comment:4</guid> <description> <p> There were too many changes for a clean patch. For a workaround change: </p> <p> boost/interprocess/sync/interprocess_semaphore.hpp </p> <p> and change the preprocessor code to avoid entering in the following configuration </p> <pre class="wiki"> #if !defined(BOOST_INTERPROCESS_FORCE_GENERIC_EMULATION) &amp;&amp; \ (defined(BOOST_INTERPROCESS_POSIX_PROCESS_SHARED) &amp;&amp; defined(BOOST_INTERPROCESS_POSIX_NAMED_SEMAPHORES)) #include &lt;boost/interprocess/sync/posix/semaphore.hpp&gt; #define BOOST_INTERPROCESS_USE_POSIX </pre><p> It should use configuration: </p> <pre class="wiki"> #elif !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED) #include &lt;boost/interprocess/sync/spin/semaphore.hpp&gt; #define BOOST_INTERPROCESS_USE_GENERIC_EMULATION #endif </pre> </description> <category>Ticket</category> </item> <item> <author>jonathan.jones@…</author> <pubDate>Mon, 21 May 2018 19:14:02 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/11154#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11154#comment:5</guid> <description> <p> Confirmed (finally) that this was fixed in Boost 1.65.1. May have been fixed in earlier releases, since we jumped from 1.56.0 directly to 1.65.1. </p> </description> <category>Ticket</category> </item> </channel> </rss>