Boost C++ Libraries: Ticket #7012: do_epoll_create failes with 'epoll: Function not supported". https://svn.boost.org/trac10/ticket/7012 <p> The relevant code: #if defined(EPOLL_CLOEXEC) </p> <blockquote> <p> int fd = epoll_create1(EPOLL_CLOEXEC); </p> </blockquote> <p> #else <em> defined(EPOLL_CLOEXEC) </em></p> <blockquote> <p> int fd = -1; errno = EINVAL; </p> </blockquote> <p> #endif <em> defined(EPOLL_CLOEXEC) </em></p> <blockquote> <p> if (fd == -1 &amp;&amp; errno == EINVAL) { </p> <blockquote> <p> fd = epoll_create(epoll_size); </p> </blockquote> </blockquote> <p> .... </p> <p> with glibc 2.13 EPOLL_CLOEXEC is always defined but epoll_create1 may return ENOSYS which causes the code below to fall though. The proposed patch is attached </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/7012 Trac 1.4.3 Oleg Grunin <oleg00@…> Thu, 21 Jun 2012 22:25:33 GMT attachment set https://svn.boost.org/trac10/ticket/7012 https://svn.boost.org/trac10/ticket/7012 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">epoll.patch</span> </li> </ul> <p> patch </p> Ticket chris_kohlhoff Sun, 15 Jul 2012 04:22:31 GMT <link>https://svn.boost.org/trac10/ticket/7012#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7012#comment:1</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/79521" title="Add support for some newer versions of glibc which provide the ...">[79521]</a>) Add support for some newer versions of glibc which provide the epoll_create1 function but always fail with ENOSYS. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7012" title="#7012: Bugs: do_epoll_create failes with 'epoll: Function not supported&#34;. (closed: fixed)">#7012</a> </p> </description> <category>Ticket</category> </item> <item> <dc:creator>chris_kohlhoff</dc:creator> <pubDate>Mon, 16 Jul 2012 06:26:35 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/7012#comment:2 https://svn.boost.org/trac10/ticket/7012#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">fixed</span> </li> </ul> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/79549" title="Merge from trunk: * Make strand destruction a no-op, to allow strand ...">[79549]</a>) Merge from trunk: </p> <ul><li>Make strand destruction a no-op, to allow strand objects to be destroyed after their associated io_service has been destroyed. </li></ul><ul><li>Use the <span class="underline">thread keyword extension when compiling with gcc on linux x86. </span></li></ul><ul><li>Avoid calling work_finished() if a completion handler creates more work. </li></ul><ul><li>Eliminate redundant call to call_stack::contains(this) when dispatching a completion handler. </li></ul><ul><li>Add support for some newer versions of glibc which provide the epoll_create1 function but always fail with ENOSYS. Fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7012" title="#7012: Bugs: do_epoll_create failes with 'epoll: Function not supported&#34;. (closed: fixed)">#7012</a> </li></ul><ul><li>Use SSE2 load and store fences. </li></ul><ul><li>Throw exception if SSL engine initialisation fails. Fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/6303" title="#6303: Bugs: possible crash in ssl stream initialization (closed: fixed)">#6303</a> </li></ul><ul><li>Fix another regression in buffered_write_stream. Fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/6310" title="#6310: Bugs: Buffered write stream broken (closed: fixed)">#6310</a> </li></ul> Ticket