Re: [Boost-bugs] [Boost C++ Libraries] #3238: asio, kqueue_reactor, result of kevent() isn't checked for error

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #3238: asio, kqueue_reactor, result of kevent() isn't checked for error
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-11-29 06:40:14


#3238: asio, kqueue_reactor, result of kevent() isn't checked for error
--------------------------------------+-------------------------------------
  Reporter: devel@… | Owner: chris_kohlhoff
      Type: Bugs | Status: reopened
 Milestone: To Be Determined | Component: asio
   Version: Boost Development Trunk | Severity: Problem
Resolution: | Keywords: asio kqueue
--------------------------------------+-------------------------------------
Changes (by chris_kohlhoff):

  * status: closed => reopened
  * resolution: fixed =>
  * milestone: => To Be Determined

Comment:

 This is a difficult to fix rainy-day bug. It is not fixed on trunk. Please
 see:

 http://article.gmane.org/gmane.comp.lib.boost.asio.user/3383

 The following program will reproduce the issue:

 {{{
 #include <boost/asio/io_service.hpp>
 #include <boost/asio/ip/udp.hpp>
 #include <iostream>

 int main()
 {
   boost::asio::io_service io_service;
   boost::asio::io_service::work work(io_service);

   boost::asio::use_service<
     boost::asio::ip::udp::socket::service_type>(
       io_service);

   if (fork()) exit(0);

   io_service.run();
 }
 }}}

 On Mac OS X, kevent() failure means the forked child consumes 100% CPU.
 Compiling with -DBOOST_ASIO_DISABLE_KQUEUE gives the desired behaviour,
 which is that the forked child consumes no CPU.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/3238#comment:2>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:04 UTC