io_service.notify_fork() at the appropriate times. Two new examples have been
added showing how to use this feature. Refs #3238, #4162.
* Clean up the handling of errors reported by the close() system call. In
particular, assume that most operating systems won't have close() fail with
EWOULDBLOCK, but if it does then set blocking mode and restart the call. If
any other error occurs we assume the descriptor is closed. Refs #3307.
* EV_ONESHOT seems to cause problems on some versions of Mac OS X, with the
io_service destructor getting stuck inside the close() system call. Use
EV_CLEAR instead. Refs #5021.
* Include function name in exception what() messages.
* Fix insufficient initialisers warning with MinGW.
* Make the shutdown_service() member functions private.
* Add archetypes for testing socket option functions.
* Add missing lock in signal_set_service::cancel().
* Fix copy/paste error in SignalHandler example.
* The signal header needs to be included in signal_set_service.hpp so that we
can use constants like NSIG and SIGRTMAX.
* Don't use Boost.Thread's convenience header. Use the header file that is
specifically for the boost::thread class instead.
[SVN r69467]
* Added support for signal handling, using a new class called
signal_set. Programs may add one or more signals to the set, and then
perform an async_wait() operation. The specified handler will be
called when one of the signals occurs. The same signal number may
registered with multiple signal_set objects, however the signal number
must be used only with Asio.
* Added handler tracking, a new debugging aid. When enabled by defining
BOOST_ASIO_ENABLE_HANDLER_TRACKING, Asio writes debugging output to
the standard error stream. The output records asynchronous operations
and the relationships between their handlers. It may be post-processed
using the included [^handlerviz.pl] tool to create a visual
representation of the handlers (requires GraphViz).
* Fixed a bug in asio::streambuf where the consume() function did not
always update the internal buffer pointers correctly. The problem may
occur when the asio::streambuf is filled with data using the standard
C++ member functions such as sputn(). (Note: the problem does not
manifest when the streambuf is populated by the Asio free functions
read(), async_read(), read_until() or async_read_until().)
* Fixed a bug on kqueue-based platforms, where reactor read operations
that return false from their perform() function are not correctly
re-registered with kqueue.
* Modified the buffers_iterator<> and ip::basic_resolver_iterator
classes so that the value_type typedefs are non-const byte types.
[SVN r69198]