diff options
author | Anas Nashif <anas.nashif@intel.com> | 2012-10-30 12:57:26 -0700 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2012-10-30 12:57:26 -0700 |
commit | 1a78a62555be32868418fe52f8e330c9d0f95d5a (patch) | |
tree | d3765a80e7d3b9640ec2e930743630cd6b9fce2b /doc/html/boost_asio/history.html | |
download | boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.gz boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.bz2 boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.zip |
Imported Upstream version 1.49.0upstream/1.49.0
Diffstat (limited to 'doc/html/boost_asio/history.html')
-rwxr-xr-x | doc/html/boost_asio/history.html | 992 |
1 files changed, 992 insertions, 0 deletions
diff --git a/doc/html/boost_asio/history.html b/doc/html/boost_asio/history.html new file mode 100755 index 0000000000..18880e42f1 --- /dev/null +++ b/doc/html/boost_asio/history.html @@ -0,0 +1,992 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Revision History</title> +<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../boost_asio.html" title="Boost.Asio"> +<link rel="up" href="../boost_asio.html" title="Boost.Asio"> +<link rel="prev" href="reference/is_error_code_enum_lt__ssl_errors__gt_/value.html" title="boost::system::is_error_code_enum< boost::asio::error::ssl_errors >::value"> +<link rel="next" href="index.html" title=""> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td> +<td align="center"><a href="../../../index.html">Home</a></td> +<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="reference/is_error_code_enum_lt__ssl_errors__gt_/value.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_asio.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../boost_asio.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="index.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section"> +<div class="titlepage"><div><div><h2 class="title" style="clear: both"> +<a name="boost_asio.history"></a><a class="link" href="history.html" title="Revision History">Revision History</a> +</h2></div></div></div> +<h4> +<a name="boost_asio.history.h0"></a> + <span><a name="boost_asio.history.asio_1_8_0___boost_1_49"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_8_0___boost_1_49">Asio + 1.8.0 / Boost 1.49</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Added a new class template <code class="computeroutput"><span class="identifier">basic_waitable_timer</span></code> + based around the C++11 clock type requirements. It may be used with the + clocks from the C++11 <code class="computeroutput"><span class="special"><</span><span class="identifier">chrono</span><span class="special">></span></code> + library facility or, if those are not available, Boost.Chrono. The typedefs + <code class="computeroutput"><span class="identifier">high_resolution_timer</span></code>, + <code class="computeroutput"><span class="identifier">steady_timer</span></code> and <code class="computeroutput"><span class="identifier">system_timer</span></code> may be used to create timer + objects for the standard clock types. + </li> +<li class="listitem"> + Added a new <code class="computeroutput"><span class="identifier">windows</span><span class="special">::</span><span class="identifier">object_handle</span></code> class for performing waits + on Windows kernel objects. Thanks go to Boris Schaeling for contributing + substantially to the development of this feature. + </li> +<li class="listitem"> + On Linux, <code class="computeroutput"><span class="identifier">connect</span><span class="special">()</span></code> + can return EAGAIN in certain circumstances. Remapped this to another error + so that it doesn't look like a non-blocking operation (<a href="https://svn.boost.org/trac/boost/ticket/6048" target="_top">#6048</a>). + </li> +<li class="listitem"> + Fixed a compile error on NetBSD (<a href="https://svn.boost.org/trac/boost/ticket/6098" target="_top">#6098</a>). + </li> +<li class="listitem"> + Fixed deadlock on Mac OS X (<a href="https://svn.boost.org/trac/boost/ticket/6275" target="_top">#6275</a>). + </li> +<li class="listitem"> + Fixed a regression in <code class="computeroutput"><span class="identifier">buffered_write_stream</span></code> + (<a href="https://svn.boost.org/trac/boost/ticket/6310" target="_top">#6310</a>). + </li> +<li class="listitem"> + Fixed a non-paged pool "leak" on Windows when an <code class="computeroutput"><span class="identifier">io_service</span></code> is repeatedly run without + anything to do (<a href="https://svn.boost.org/trac/boost/ticket/6321" target="_top">#6321</a>). + </li> +<li class="listitem"> + Reverted earlier change to allow some speculative operations to be performed + without holding the lock, as it introduced a race condition in some multithreaded + scenarios. + </li> +<li class="listitem"> + Fixed a bug where the second buffer in an array of two buffers may be ignored + if the first buffer is empty. + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h1"></a> + <span><a name="boost_asio.history.asio_1_6_1___boost_1_48"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_6_1___boost_1_48">Asio + 1.6.1 / Boost 1.48</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Implemented various performance improvements, including: + <div class="itemizedlist"><ul class="itemizedlist" type="circle"> +<li class="listitem"> + Using thread-local operation queues in single-threaded use cases + (i.e. when <code class="computeroutput"><span class="identifier">concurrency_hint</span></code> + is 1) to eliminate a lock/unlock pair. + </li> +<li class="listitem"> + Allowing some <code class="computeroutput"><span class="identifier">epoll_reactor</span></code> + speculative operations to be performed without holding the lock. + </li> +<li class="listitem"> + Improving locality of reference by performing an <code class="computeroutput"><span class="identifier">epoll_reactor</span></code>'s + I/O operation immediately before the corresponding handler is called. + This also improves scalability across CPUs when multiple threads + are running the <code class="computeroutput"><span class="identifier">io_service</span></code>. + </li> +<li class="listitem"> + Specialising asynchronous read and write operations for buffer sequences + that are arrays (<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code> + or <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code>) of exactly two buffers. + </li> +</ul></div> + </li> +<li class="listitem"> + Fixed a compile error in the regex overload of <code class="computeroutput"><span class="identifier">async_read_until</span></code> + (<a href="https://svn.boost.org/trac/boost/ticket/5688" target="_top">#5688</a>). + </li> +<li class="listitem"> + Fixed a Windows-specific compile error by explicitly specifying the <code class="computeroutput"><span class="identifier">signal</span><span class="special">()</span></code> + function from the global namespace (<a href="https://svn.boost.org/trac/boost/ticket/5722" target="_top">#5722</a>). + </li> +<li class="listitem"> + Changed the <code class="computeroutput"><span class="identifier">deadline_timer</span></code> + implementation so that it does not read the clock unless the timer heap + is non-empty. + </li> +<li class="listitem"> + Changed the SSL stream's buffers' sizes so that they are large enough to + hold a complete TLS record (<a href="https://svn.boost.org/trac/boost/ticket/5854" target="_top">#5854</a>). + </li> +<li class="listitem"> + Fixed the behaviour of the synchronous <code class="computeroutput"><span class="identifier">null_buffers</span></code> + operations so that they obey the user's non-blocking setting (<a href="https://svn.boost.org/trac/boost/ticket/5756" target="_top">#5756</a>). + </li> +<li class="listitem"> + Changed to set the size of the select <code class="computeroutput"><span class="identifier">fd_set</span></code> + at runtime when using Windows. + </li> +<li class="listitem"> + Disabled an MSVC warning due to const qualifier being applied to function + type. + </li> +<li class="listitem"> + Fixed a crash that occurs when using the Intel C++ compiler (<a href="https://svn.boost.org/trac/boost/ticket/5763" target="_top">#5763</a>). + </li> +<li class="listitem"> + Changed the initialisation of the OpenSSL library so that it supports all + available algorithms. + </li> +<li class="listitem"> + Fixed the SSL error mapping used when the session is gracefully shut down. + </li> +<li class="listitem"> + Added some latency test programs. + </li> +<li class="listitem"> + Clarified that a read operation ends when the buffer is full (<a href="https://svn.boost.org/trac/boost/ticket/5999" target="_top">#5999</a>). + </li> +<li class="listitem"> + Fixed an exception safety issue in <code class="computeroutput"><span class="identifier">epoll_reactor</span></code> + initialisation (<a href="https://svn.boost.org/trac/boost/ticket/6006" target="_top">#6006</a>). + </li> +<li class="listitem"> + Made the number of strand implementations configurable by defining <code class="computeroutput"><span class="identifier">BOOST_ASIO_STRAND_IMPLEMENTATIONS</span></code> to + the desired number. + </li> +<li class="listitem"> + Added support for a new <code class="computeroutput"><span class="identifier">BOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION</span></code> + flag which switches the allocation of strand implementations to use a round-robin + approach rather than hashing. + </li> +<li class="listitem"> + Fixed potential strand starvation issue that can occur when <code class="computeroutput"><span class="identifier">strand</span><span class="special">.</span><span class="identifier">post</span><span class="special">()</span></code> + is used. + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h2"></a> + <span><a name="boost_asio.history.asio_1_6_0___boost_1_47"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_6_0___boost_1_47">Asio + 1.6.0 / Boost 1.47</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Added support for signal handling, using a new class called <code class="computeroutput"><span class="identifier">signal_set</span></code>. Programs may add one or more + signals to the set, and then perform an <code class="computeroutput"><span class="identifier">async_wait</span><span class="special">()</span></code> operation. The specified handler will + be called when one of the signals occurs. The same signal number may be + registered with multiple <code class="computeroutput"><span class="identifier">signal_set</span></code> + objects, however the signal number must be used only with Asio. Addresses + <a href="https://svn.boost.org/trac/boost/ticket/2879" target="_top">#2879</a>. + </li> +<li class="listitem"> + Added handler tracking, a new debugging aid. When enabled by defining + <code class="computeroutput"><span class="identifier">BOOST_ASIO_ENABLE_HANDLER_TRACKING</span></code>, + 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 <code class="literal">handlerviz.pl</code> + tool to create a visual representation of the handlers (requires GraphViz). + </li> +<li class="listitem"> + Added support for timeouts on socket iostreams, such as <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">iostream</span></code>. + A timeout is set by calling <code class="computeroutput"><span class="identifier">expires_at</span><span class="special">()</span></code> or <code class="computeroutput"><span class="identifier">expires_from_now</span><span class="special">()</span></code> to establish a deadline. Any socket operations + which occur past the deadline will put the iostream into a bad state. + </li> +<li class="listitem"> + Added a new <code class="computeroutput"><span class="identifier">error</span><span class="special">()</span></code> + member function to socket iostreams, for retrieving the error code from + the most recent system call. + </li> +<li class="listitem"> + Added a new <code class="computeroutput"><span class="identifier">basic_deadline_timer</span><span class="special">::</span><span class="identifier">cancel_one</span><span class="special">()</span></code> function. This function lets you cancel + a single waiting handler on a timer. Handlers are cancelled in FIFO order. + </li> +<li class="listitem"> + Added a new <code class="computeroutput"><span class="identifier">transfer_exactly</span><span class="special">()</span></code> completion condition. This can be used + to send or receive a specified number of bytes even if the total size of + the buffer (or buffer sequence) is larger. + </li> +<li class="listitem"> + Added new free functions <code class="computeroutput"><span class="identifier">connect</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">async_connect</span><span class="special">()</span></code>. These operations try each endpoint in + a list until the socket is successfully connected, and are useful for creating + TCP clients that work with both IPv4 and IPv6. + </li> +<li class="listitem"> + Extended the <code class="computeroutput"><span class="identifier">buffer_size</span><span class="special">()</span></code> function so that it works for buffer + sequences in addition to individual buffers. + </li> +<li class="listitem"> + Added a new <code class="computeroutput"><span class="identifier">buffer_copy</span><span class="special">()</span></code> function that can be used to copy the + raw bytes between individual buffers and buffer sequences. + </li> +<li class="listitem"> + Added new non-throwing overloads of <code class="computeroutput"><span class="identifier">read</span><span class="special">()</span></code>, <code class="computeroutput"><span class="identifier">read_at</span><span class="special">()</span></code>, <code class="computeroutput"><span class="identifier">write</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">write_at</span><span class="special">()</span></code> that do not require a completion condition. + </li> +<li class="listitem"> + Added friendlier compiler errors for when a completion handler does not + meet the necessary type requirements. When C++0x is available (currently + supported for <code class="literal">g++</code> 4.5 or later, and MSVC 10), <code class="computeroutput"><span class="identifier">static_assert</span></code> is also used to generate + an informative error message. This checking may be disabled by defining + <code class="computeroutput"><span class="identifier">BOOST_ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS</span></code>. + </li> +<li class="listitem"> + Added a new, completely rewritten SSL implementation. The new implementation + compiles faster, shows substantially improved performance, and supports + custom memory allocation and handler invocation. It includes new API features + such as certificate verification callbacks and has improved error reporting. + The new implementation is source-compatible with the old for most uses. + However, if necessary, the old implementation may still be used by defining + <code class="computeroutput"><span class="identifier">BOOST_ASIO_ENABLE_OLD_SSL</span></code>. + Addresses <a href="https://svn.boost.org/trac/boost/ticket/3702" target="_top">#3702</a>, + <a href="https://svn.boost.org/trac/boost/ticket/3958" target="_top">#3958</a>. + </li> +<li class="listitem"> + Changed the separate compilation support such that, to use Asio's SSL capabilities, + you should also include <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">asio</span><span class="special">/</span><span class="identifier">ssl</span><span class="special">/</span><span class="identifier">impl</span><span class="special">/</span><span class="identifier">src</span><span class="special">.</span><span class="identifier">hpp</span></code> + in one source file in your program. + </li> +<li class="listitem"> + Changed the SSL implementation to support build environments where SSL + v2 is explicitly disabled (<a href="https://svn.boost.org/trac/boost/ticket/5453" target="_top">#5453</a>). + </li> +<li class="listitem"> + Made the <code class="computeroutput"><span class="identifier">is_loopback</span><span class="special">()</span></code>, + <code class="computeroutput"><span class="identifier">is_unspecified</span><span class="special">()</span></code> + and <code class="computeroutput"><span class="identifier">is_multicast</span><span class="special">()</span></code> + functions consistently available across the <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">address</span></code>, + <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">address_v4</span></code> and <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">address_v6</span></code> + classes (<a href="https://svn.boost.org/trac/boost/ticket/3939" target="_top">#3939</a>). + </li> +<li class="listitem"> + Added new <code class="computeroutput"><span class="identifier">non_blocking</span><span class="special">()</span></code> functions for managing the non-blocking + behaviour of a socket or descriptor. The <code class="computeroutput"><span class="identifier">io_control</span><span class="special">()</span></code> commands named <code class="computeroutput"><span class="identifier">non_blocking_io</span></code> + are now deprecated in favour of these new functions. + </li> +<li class="listitem"> + Added new <code class="computeroutput"><span class="identifier">native_non_blocking</span><span class="special">()</span></code> functions for managing the non-blocking + mode of the underlying socket or descriptor. These functions are intended + to allow the encapsulation of arbitrary non-blocking system calls as asynchronous + operations, in a way that is transparent to the user of the socket object. + The functions have no effect on the behaviour of the synchronous operations + of the socket or descriptor. + </li> +<li class="listitem"> + Added the <code class="computeroutput"><span class="identifier">io_control</span><span class="special">()</span></code> + member function for socket acceptors (<a href="https://svn.boost.org/trac/boost/ticket/3297" target="_top">#3297</a>). + </li> +<li class="listitem"> + Added a <code class="computeroutput"><span class="identifier">release</span><span class="special">()</span></code> + member function to posix descriptors. This function releases ownership + of the underlying native descriptor to the caller. Addresses <a href="https://svn.boost.org/trac/boost/ticket/3900" target="_top">#3900</a>. + </li> +<li class="listitem"> + Added support for sequenced packet sockets (<code class="computeroutput"><span class="identifier">SOCK_SEQPACKET</span></code>). + </li> +<li class="listitem"> + Added a new <code class="computeroutput"><span class="identifier">io_service</span><span class="special">::</span><span class="identifier">stopped</span><span class="special">()</span></code> function that can be used to determine + whether the <code class="computeroutput"><span class="identifier">io_service</span></code> + has stopped (i.e. a <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code> call is needed prior to any further calls + to <code class="computeroutput"><span class="identifier">run</span><span class="special">()</span></code>, + <code class="computeroutput"><span class="identifier">run_one</span><span class="special">()</span></code>, + <code class="computeroutput"><span class="identifier">poll</span><span class="special">()</span></code> + or <code class="computeroutput"><span class="identifier">poll_one</span><span class="special">()</span></code>). + </li> +<li class="listitem"> + For consistency with the C++0x standard library, deprecated the <code class="computeroutput"><span class="identifier">native_type</span></code> typedefs in favour of <code class="computeroutput"><span class="identifier">native_handle_type</span></code>, and the <code class="computeroutput"><span class="identifier">native</span><span class="special">()</span></code> + member functions in favour of <code class="computeroutput"><span class="identifier">native_handle</span><span class="special">()</span></code>. + </li> +<li class="listitem"> + Added support for C++0x move construction and assignment to sockets, serial + ports, POSIX descriptors and Windows handles. + </li> +<li class="listitem"> + Reduced the copying of handler function objects. + </li> +<li class="listitem"> + Added support for C++0x move construction to further reduce (and in some + cases eliminate) copying of handler objects. + </li> +<li class="listitem"> + Added support for the <code class="computeroutput"><span class="identifier">fork</span><span class="special">()</span></code> system call. Programs that use <code class="computeroutput"><span class="identifier">fork</span><span class="special">()</span></code> + must call <code class="computeroutput"><span class="identifier">io_service</span><span class="special">.</span><span class="identifier">notify_fork</span><span class="special">()</span></code> + at the appropriate times. Two new examples have been added showing how + to use this feature. Addresses <a href="https://svn.boost.org/trac/boost/ticket/3238" target="_top">#3238</a>, + <a href="https://svn.boost.org/trac/boost/ticket/4162" target="_top">#4162</a>. + </li> +<li class="listitem"> + Cleaned up the handling of errors reported by the <code class="computeroutput"><span class="identifier">close</span><span class="special">()</span></code> system call. In particular, assume that + most operating systems won't have <code class="computeroutput"><span class="identifier">close</span><span class="special">()</span></code> fail with <code class="computeroutput"><span class="identifier">EWOULDBLOCK</span></code>, + but if it does then set the blocking mode and restart the call. If any + other error occurs, assume the descriptor is closed. Addresses <a href="https://svn.boost.org/trac/boost/ticket/3307" target="_top">#3307</a>. + </li> +<li class="listitem"> + Added new <code class="computeroutput"><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span><span class="special">()</span></code> + overloads for <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code>, when available. + </li> +<li class="listitem"> + Changed the implementation to use the C++0x standard library templates + <code class="computeroutput"><span class="identifier">array</span></code>, <code class="computeroutput"><span class="identifier">shared_ptr</span></code>, + <code class="computeroutput"><span class="identifier">weak_ptr</span></code> and <code class="computeroutput"><span class="identifier">atomic</span></code> when they are available, rather + than the Boost equivalents. + </li> +<li class="listitem"> + Use C++0x variadic templates when available, rather than generating function + overloads using Boost.Preprocessor. + </li> +<li class="listitem"> + Changed exception reporting to include the function name in exception + <code class="computeroutput"><span class="identifier">what</span><span class="special">()</span></code> + messages. + </li> +<li class="listitem"> + Fixed insufficient initialisers warning with MinGW. + </li> +<li class="listitem"> + Changed the <code class="computeroutput"><span class="identifier">shutdown_service</span><span class="special">()</span></code> member functions to be private. + </li> +<li class="listitem"> + Added archetypes for testing socket option functions. + </li> +<li class="listitem"> + Changed the Boost.Asio examples so that they don't use Boost.Thread's convenience + header. Use the header file that is specifically for the boost::thread + class instead. + </li> +<li class="listitem"> + Removed the dependency on OS-provided macros for the well-known IPv4 and + IPv6 addresses. This should eliminate annoying "missing braces around + initializer" warnings (<a href="https://svn.boost.org/trac/boost/ticket/3741" target="_top">#3741</a>). + </li> +<li class="listitem"> + Reduced the size of <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_endpoint</span><span class="special"><></span></code> objects (such as <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">endpoint</span></code> and <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">udp</span><span class="special">::</span><span class="identifier">endpoint</span></code>). + </li> +<li class="listitem"> + Changed the reactor backends to assume that any descriptors or sockets + added using <code class="computeroutput"><span class="identifier">assign</span><span class="special">()</span></code> + may have been <code class="computeroutput"><span class="identifier">dup</span><span class="special">()</span></code>-ed, + and so require explicit deregistration from the reactor (<a href="https://svn.boost.org/trac/boost/ticket/4971" target="_top">#4971</a>). + </li> +<li class="listitem"> + Removed the deprecated member functions named <code class="computeroutput"><span class="identifier">io_service</span><span class="special">()</span></code>. The <code class="computeroutput"><span class="identifier">get_io_service</span><span class="special">()</span></code> member functions should be used instead. + </li> +<li class="listitem"> + Removed the deprecated typedefs <code class="computeroutput"><span class="identifier">resolver_query</span></code> + and <code class="computeroutput"><span class="identifier">resolver_iterator</span></code> from + the <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span></code>, <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">udp</span></code> + and <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">icmp</span></code> classes. + </li> +<li class="listitem"> + Modified the <code class="computeroutput"><span class="identifier">buffers_iterator</span><span class="special"><></span></code> and <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_iterator</span></code> + classes so that the value_type typedefs are non-const byte types. + </li> +<li class="listitem"> + Fixed warnings reported by g++'s <code class="literal">-Wshadow</code> compiler option + (<a href="https://svn.boost.org/trac/boost/ticket/3905" target="_top">#3905</a>). + </li> +<li class="listitem"> + Added an explicit cast to convert the <code class="computeroutput"><span class="identifier">FIONBIO</span></code> + constant to int, to suppress a compiler warning on some platforms (<a href="https://svn.boost.org/trac/boost/ticket/5128" target="_top">#5128</a>). + </li> +<li class="listitem"> + Changed most examples to treat a failure by an accept operation as non-fatal + (<a href="https://svn.boost.org/trac/boost/ticket/5124" target="_top">#5124</a>). + </li> +<li class="listitem"> + Fixed an error in the <code class="literal">tick_count_timer</code> example by making + the duration type signed. Previously, a wait on an already-passed deadline + would not return for a very long time (<a href="https://svn.boost.org/trac/boost/ticket/5418" target="_top">#5418</a>). + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h3"></a> + <span><a name="boost_asio.history.asio_1_4_9___boost_1_46_1"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_4_9___boost_1_46_1">Asio + 1.4.9 / Boost 1.46.1</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + <code class="computeroutput"><span class="identifier">EV_ONESHOT</span></code> seems to cause + problems on some versions of Mac OS X, with the <code class="computeroutput"><span class="identifier">io_service</span></code> + destructor getting stuck inside the <code class="computeroutput"><span class="identifier">close</span><span class="special">()</span></code> system call. Changed the kqueue backend + to use <code class="computeroutput"><span class="identifier">EV_CLEAR</span></code> instead + (<a href="https://svn.boost.org/trac/boost/ticket/5021" target="_top">#5021</a>). + </li> +<li class="listitem"> + Fixed compile failures with some versions of <code class="literal">g++</code> due + to the use of anonymous enums (<a href="https://svn.boost.org/trac/boost/ticket/4883" target="_top">#4883</a>). + </li> +<li class="listitem"> + Fixed a bug on kqueue-based platforms, where some system calls that repeatedly + fail with <code class="computeroutput"><span class="identifier">EWOULDBLOCK</span></code> are + not correctly re-registered with kqueue. + </li> +<li class="listitem"> + Changed <code class="computeroutput"><span class="identifier">asio</span><span class="special">::</span><span class="identifier">streambuf</span></code> to ensure that its internal + pointers are updated correctly after the data has been modified using + <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">streambuf</span></code> member functions. + </li> +<li class="listitem"> + Fixed a bug that prevented the linger socket option from working on platforms + other than Windows. + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h4"></a> + <span><a name="boost_asio.history.asio_1_4_8___boost_1_46"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_4_8___boost_1_46">Asio + 1.4.8 / Boost 1.46</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Fixed an integer overflow problem that occurs when <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">address_v4</span><span class="special">::</span><span class="identifier">broadcast</span><span class="special">()</span></code> is used on 64-bit platforms. + </li> +<li class="listitem"> + Fixed a problem on older Linux kernels (where epoll is used without timerfd + support) that prevents timely delivery of deadline_timer handlers, after + the program has been running for some time (<a href="https://svn.boost.org/trac/boost/ticket/5045" target="_top">#5045</a>). + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h5"></a> + <span><a name="boost_asio.history.asio_1_4_7___boost_1_45"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_4_7___boost_1_45">Asio + 1.4.7 / Boost 1.45</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Fixed a problem on kqueue-based platforms where a <code class="computeroutput"><span class="identifier">deadline_timer</span></code> + may never fire if the <code class="computeroutput"><span class="identifier">io_service</span></code> + is running in a background thread (<a href="https://svn.boost.org/trac/boost/ticket/4568" target="_top">#4568</a>). + </li> +<li class="listitem"> + Fixed a const-correctness issue that prevented valid uses of <code class="computeroutput"><span class="identifier">has_service</span><span class="special"><></span></code> + from compiling (<a href="https://svn.boost.org/trac/boost/ticket/4638" target="_top">#4638</a>). + </li> +<li class="listitem"> + Fixed MinGW cross-compilation (<a href="https://svn.boost.org/trac/boost/ticket/4491" target="_top">#4491</a>). + </li> +<li class="listitem"> + Removed dependency on deprecated Boost.System functions (<a href="https://svn.boost.org/trac/boost/ticket/4672" target="_top">#4672</a>). + </li> +<li class="listitem"> + Ensured <code class="computeroutput"><span class="identifier">close</span><span class="special">()</span></code>/<code class="computeroutput"><span class="identifier">closesocket</span><span class="special">()</span></code> + failures are correctly propagated (<a href="https://svn.boost.org/trac/boost/ticket/4573" target="_top">#4573</a>). + </li> +<li class="listitem"> + Added a check for errors returned by <code class="computeroutput"><span class="identifier">InitializeCriticalSectionAndSpinCount</span></code> + (<a href="https://svn.boost.org/trac/boost/ticket/4574" target="_top">#4574</a>). + </li> +<li class="listitem"> + Added support for hardware flow control on QNX (<a href="https://svn.boost.org/trac/boost/ticket/4625" target="_top">#4625</a>). + </li> +<li class="listitem"> + Always use <code class="computeroutput"><span class="identifier">pselect</span><span class="special">()</span></code> + on HP-UX, if it is available (<a href="https://svn.boost.org/trac/boost/ticket/4578" target="_top">#4578</a>). + </li> +<li class="listitem"> + Ensured handler arguments are passed as lvalues (<a href="https://svn.boost.org/trac/boost/ticket/4744" target="_top">#4744</a>). + </li> +<li class="listitem"> + Fixed Windows build when thread support is disabled (<a href="https://svn.boost.org/trac/boost/ticket/4680" target="_top">#4680</a>). + </li> +<li class="listitem"> + Fixed a Windows-specific problem where <code class="computeroutput"><span class="identifier">deadline_timer</span></code> + objects with expiry times set more than 5 minutes in the future may never + expire (<a href="https://svn.boost.org/trac/boost/ticket/4745" target="_top">#4745</a>). + </li> +<li class="listitem"> + Fixed the <code class="computeroutput"><span class="identifier">resolver</span></code> backend + on BSD platforms so that an empty service name resolves to port number + <code class="computeroutput"><span class="number">0</span></code>, as per the documentation + (<a href="https://svn.boost.org/trac/boost/ticket/4690" target="_top">#4690</a>). + </li> +<li class="listitem"> + Fixed read operations so that they do not accept buffer sequences of type + <code class="computeroutput"><span class="identifier">const_buffers_1</span></code> (<a href="https://svn.boost.org/trac/boost/ticket/4746" target="_top">#4746</a>). + </li> +<li class="listitem"> + Redefined <code class="computeroutput"><span class="identifier">Protocol</span></code> and + <code class="computeroutput"><span class="identifier">id</span></code> to avoid clashing with + Objective-C++ keywords (<a href="https://svn.boost.org/trac/boost/ticket/4191" target="_top">#4191</a>). + </li> +<li class="listitem"> + Fixed a <code class="computeroutput"><span class="identifier">vector</span></code> reallocation + performance issue that can occur when there are many active <code class="computeroutput"><span class="identifier">deadline_timer</span></code> objects (<a href="https://svn.boost.org/trac/boost/ticket/4780" target="_top">#4780</a>). + </li> +<li class="listitem"> + Fixed the kqueue backend so that it compiles on NetBSD (<a href="https://svn.boost.org/trac/boost/ticket/4662" target="_top">#4662</a>). + </li> +<li class="listitem"> + Fixed the socket <code class="computeroutput"><span class="identifier">io_control</span><span class="special">()</span></code> implementation on 64-bit Mac OS X and + BSD platforms (<a href="https://svn.boost.org/trac/boost/ticket/4782" target="_top">#4782</a>). + </li> +<li class="listitem"> + Fixed a Windows-specific problem where failures from <code class="computeroutput"><span class="identifier">accept</span><span class="special">()</span></code> are incorrectly treated as successes + (<a href="https://svn.boost.org/trac/boost/ticket/4859" target="_top">#4859</a>). + </li> +<li class="listitem"> + Deprecated the separate compilation header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">asio</span><span class="special">/</span><span class="identifier">impl</span><span class="special">/</span><span class="identifier">src</span><span class="special">.</span><span class="identifier">cpp</span><span class="special">></span></code> + in favour of <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">asio</span><span class="special">/</span><span class="identifier">impl</span><span class="special">/</span><span class="identifier">src</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> (<a href="https://svn.boost.org/trac/boost/ticket/4560" target="_top">#4560</a>). + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h6"></a> + <span><a name="boost_asio.history.asio_1_4_6___boost_1_44"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_4_6___boost_1_44">Asio + 1.4.6 / Boost 1.44</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Reduced compile times. (Note that some programs may need to add additional + <code class="computeroutput"><span class="preprocessor">#include</span></code>s, e.g. if the + program uses <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code> but does not explicitly include + <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">array</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>.) + </li> +<li class="listitem"> + Reduced the size of generated code. + </li> +<li class="listitem"> + Refactored <code class="computeroutput"><span class="identifier">deadline_timer</span></code> + implementation to improve performance. + </li> +<li class="listitem"> + Improved multiprocessor scalability on Windows by using a dedicated hidden + thread to wait for timers. + </li> +<li class="listitem"> + Improved performance of <code class="computeroutput"><span class="identifier">asio</span><span class="special">::</span><span class="identifier">streambuf</span></code> + with <code class="computeroutput"><span class="identifier">async_read</span><span class="special">()</span></code> + and <code class="computeroutput"><span class="identifier">async_read_until</span><span class="special">()</span></code>. + These read operations now use the existing capacity of the <code class="computeroutput"><span class="identifier">streambuf</span></code> when reading, rather than limiting + the read to 512 bytes. + </li> +<li class="listitem"> + Added optional separate compilation. To enable, add <code class="computeroutput"><span class="preprocessor">#include</span> + <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">asio</span><span class="special">/</span><span class="identifier">impl</span><span class="special">/</span><span class="identifier">src</span><span class="special">.</span><span class="identifier">cpp</span><span class="special">></span></code> to one source file in a program, then + build the program with <code class="computeroutput"><span class="identifier">BOOST_ASIO_SEPARATE_COMPILATION</span></code> + defined in the project/compiler settings. Alternatively, <code class="computeroutput"><span class="identifier">BOOST_ASIO_DYN_LINK</span></code> may be defined to + build a separately-compiled Asio as part of a shared library. + </li> +<li class="listitem"> + Added new macro <code class="computeroutput"><span class="identifier">BOOST_ASIO_DISABLE_FENCED_BLOCK</span></code> + to permit the disabling of memory fences around completion handlers, even + if thread support is enabled. + </li> +<li class="listitem"> + Reworked timeout examples to better illustrate typical use cases. + </li> +<li class="listitem"> + Ensured that handler arguments are passed as <code class="computeroutput"><span class="keyword">const</span></code> + types. + </li> +<li class="listitem"> + Fixed incorrect parameter order in <code class="computeroutput"><span class="identifier">null_buffers</span></code> + variant of <code class="computeroutput"><span class="identifier">async_send_to</span></code> + (<a href="https://svn.boost.org/trac/boost/ticket/4170" target="_top">#4170</a>). + </li> +<li class="listitem"> + Ensured <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">char</span></code> + is used with <code class="computeroutput"><span class="identifier">isdigit</span></code> in + <code class="computeroutput"><span class="identifier">getaddrinfo</span></code> emulation (<a href="https://svn.boost.org/trac/boost/ticket/4201" target="_top">#4201</a>). + </li> +<li class="listitem"> + Fixed handling of very small but non-zero timeouts (<a href="https://svn.boost.org/trac/boost/ticket/4205" target="_top">#4205</a>). + </li> +<li class="listitem"> + Fixed crash that occurred when an empty buffer sequence was passed to a + composed read or write operation. + </li> +<li class="listitem"> + Added missing <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> + overload in <code class="computeroutput"><span class="identifier">buffers_iterator</span></code> + (<a href="https://svn.boost.org/trac/boost/ticket/4382" target="_top">#4382</a>). + </li> +<li class="listitem"> + Implemented cancellation of <code class="computeroutput"><span class="identifier">null_buffers</span></code> + operations on Windows. + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h7"></a> + <span><a name="boost_asio.history.asio_1_4_5___boost_1_43"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_4_5___boost_1_43">Asio + 1.4.5 / Boost 1.43</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Improved performance. + </li> +<li class="listitem"> + Reduced compile times. + </li> +<li class="listitem"> + Reduced the size of generated code. + </li> +<li class="listitem"> + Extended the guarantee that background threads don't call user code to + all asynchronous operations (<a href="https://svn.boost.org/trac/boost/ticket/3923" target="_top">#3923</a>). + </li> +<li class="listitem"> + Changed to use edge-triggered epoll on Linux. + </li> +<li class="listitem"> + Changed to use <code class="computeroutput"><span class="identifier">timerfd</span></code> + for dispatching timers on Linux, when available. + </li> +<li class="listitem"> + Changed to use one-shot notifications with kqueue on Mac OS X and BSD platforms. + </li> +<li class="listitem"> + Added a bitmask type <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">resolver_query_base</span><span class="special">::</span><span class="identifier">flags</span></code> + as per the TR2 proposal. This type prevents implicit conversion from <code class="computeroutput"><span class="keyword">int</span></code> to <code class="computeroutput"><span class="identifier">flags</span></code>, + allowing the compiler to catch cases where users incorrectly pass a numeric + port number as the service name. + </li> +<li class="listitem"> + Added <code class="computeroutput"><span class="preprocessor">#define</span> <span class="identifier">NOMINMAX</span></code> + for all Windows compilers. Users can define <code class="computeroutput"><span class="identifier">BOOST_ASIO_NO_NOMINMAX</span></code> + to suppress this definition (<a href="https://svn.boost.org/trac/boost/ticket/3901" target="_top">#3901</a>). + </li> +<li class="listitem"> + Fixed a bug where 0-byte asynchronous reads were incorrectly passing an + <code class="computeroutput"><span class="identifier">error</span><span class="special">::</span><span class="identifier">eof</span></code> result to the completion handler + (<a href="https://svn.boost.org/trac/boost/ticket/4023" target="_top">#4023</a>). + </li> +<li class="listitem"> + Changed the <code class="computeroutput"><span class="identifier">io_control</span><span class="special">()</span></code> member functions to always call <code class="computeroutput"><span class="identifier">ioctl</span></code> on the underlying descriptor when + modifying blocking mode (<a href="https://svn.boost.org/trac/boost/ticket/3307" target="_top">#3307</a>). + </li> +<li class="listitem"> + Changed the resolver implementation to longer require the typedefs <code class="computeroutput"><span class="identifier">InternetProtocol</span><span class="special">::</span><span class="identifier">resolver_query</span></code> and <code class="computeroutput"><span class="identifier">InternetProtocol</span><span class="special">::</span><span class="identifier">resolver_iterator</span></code>, + as neither typedef is part of the documented <code class="computeroutput"><span class="identifier">InternetProtocol</span></code> + requirements. The corresponding typedefs in the <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span></code>, + <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">udp</span></code> and <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">icmp</span></code> + classes have been deprecated. + </li> +<li class="listitem"> + Fixed out-of-band handling for reactors not based on <code class="computeroutput"><span class="identifier">select</span><span class="special">()</span></code>. + </li> +<li class="listitem"> + Added new <code class="computeroutput"><span class="identifier">BOOST_ASIO_DISABLE_THREADS</span></code> + macro that allows Asio's threading support to be independently disabled. + </li> +<li class="listitem"> + Minor documentation improvements. + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h8"></a> + <span><a name="boost_asio.history.asio_1_4_4___boost_1_42"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_4_4___boost_1_42">Asio + 1.4.4 / Boost 1.42</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Added a new HTTP Server 4 example illustrating the use of stackless coroutines + with Asio. + </li> +<li class="listitem"> + Changed handler allocation and invocation to use <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">addressof</span></code> + to get the address of handler objects, rather than applying <code class="computeroutput"><span class="keyword">operator</span><span class="special">&</span></code> + directly (<a href="https://svn.boost.org/trac/boost/ticket/2977" target="_top">#2977</a>). + </li> +<li class="listitem"> + Restricted MSVC buffer debugging workaround to 2008, as it causes a crash + with 2010 beta 2 (<a href="https://svn.boost.org/trac/boost/ticket/3796" target="_top">#3796</a>, + <a href="https://svn.boost.org/trac/boost/ticket/3822" target="_top">#3822</a>). + </li> +<li class="listitem"> + Fixed a problem with the lifetime of handler memory, where Windows needs + the <code class="computeroutput"><span class="identifier">OVERLAPPED</span></code> structure + to be valid until both the initiating function call has returned and the + completion packet has been delivered. + </li> +<li class="listitem"> + Don't block signals while performing system calls, but instead restart + the calls if they are interrupted. + </li> +<li class="listitem"> + Documented the guarantee made by strand objects with respect to order of + handler invocation. + </li> +<li class="listitem"> + Changed strands to use a pool of implementations, to make copying of strands + cheaper. + </li> +<li class="listitem"> + Ensured that kqueue support is enabled for BSD platforms (<a href="https://svn.boost.org/trac/boost/ticket/3626" target="_top">#3626</a>). + </li> +<li class="listitem"> + Added a <code class="computeroutput"><span class="identifier">boost_</span></code> prefix to + the <code class="computeroutput"><span class="keyword">extern</span> <span class="string">"C"</span></code> + thread entry point function (<a href="https://svn.boost.org/trac/boost/ticket/3809" target="_top">#3809</a>). + </li> +<li class="listitem"> + In <code class="computeroutput"><span class="identifier">getaddrinfo</span></code> emulation, + only check the socket type (<code class="computeroutput"><span class="identifier">SOCK_STREAM</span></code> + or <code class="computeroutput"><span class="identifier">SOCK_DGRAM</span></code>) if a service + name has been specified. This should allow the emulation to work with raw + sockets. + </li> +<li class="listitem"> + Added a workaround for some broken Windows firewalls that make a socket + appear bound to 0.0.0.0 when it is in fact bound to 127.0.0.1. + </li> +<li class="listitem"> + Applied a fix for reported excessive CPU usage under Solaris (<a href="https://svn.boost.org/trac/boost/ticket/3670" target="_top">#3670</a>). + </li> +<li class="listitem"> + Added some support for platforms that use older compilers such as g++ 2.95 + (<a href="https://svn.boost.org/trac/boost/ticket/3743" target="_top">#3743</a>). + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h9"></a> + <span><a name="boost_asio.history.asio_1_4_3___boost_1_40"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_4_3___boost_1_40">Asio + 1.4.3 / Boost 1.40</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Added a new ping example to illustrate the use of ICMP sockets. + </li> +<li class="listitem"> + Changed the <code class="computeroutput"><span class="identifier">buffered</span><span class="special">*</span><span class="identifier">_stream</span><span class="special"><></span></code> + templates to treat 0-byte reads and writes as no-ops, to comply with the + documented type requirements for <code class="computeroutput"><span class="identifier">SyncReadStream</span></code>, + <code class="computeroutput"><span class="identifier">AsyncReadStream</span></code>, <code class="computeroutput"><span class="identifier">SyncWriteStream</span></code> and <code class="computeroutput"><span class="identifier">AsyncWriteStream</span></code>. + </li> +<li class="listitem"> + Changed some instances of the <code class="computeroutput"><span class="keyword">throw</span></code> + keyword to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throw_exception</span><span class="special">()</span></code> + to allow Asio to be used when exception support is disabled. Note that + the SSL wrappers still require exception support (<a href="https://svn.boost.org/trac/boost/ticket/2754" target="_top">#2754</a>). + </li> +<li class="listitem"> + Made Asio compatible with the OpenSSL 1.0 beta (<a href="https://svn.boost.org/trac/boost/ticket/3256" target="_top">#3256</a>). + </li> +<li class="listitem"> + Eliminated a redundant system call in the Solaris <code class="literal">/dev/poll</code> + backend. + </li> +<li class="listitem"> + Fixed a bug in resizing of the bucket array in the internal hash maps (<a href="https://svn.boost.org/trac/boost/ticket/3095" target="_top">#3095</a>). + </li> +<li class="listitem"> + Ensured correct propagation of the error code when a synchronous accept + fails (<a href="https://svn.boost.org/trac/boost/ticket/3216" target="_top">#3216</a>). + </li> +<li class="listitem"> + Ensured correct propagation of the error code when a synchronous read or + write on a Windows HANDLE fails. + </li> +<li class="listitem"> + Fixed failures reported when <code class="computeroutput"><span class="identifier">_GLIBCXX_DEBUG</span></code> + is defined (<a href="https://svn.boost.org/trac/boost/ticket/3098" target="_top">#3098</a>). + </li> +<li class="listitem"> + Fixed custom memory allocation support for timers (<a href="https://svn.boost.org/trac/boost/ticket/3107" target="_top">#3107</a>). + </li> +<li class="listitem"> + Tidied up various warnings reported by g++ (<a href="https://svn.boost.org/trac/boost/ticket/1341" target="_top">#1341</a>, + <a href="https://svn.boost.org/trac/boost/ticket/2618" target="_top">#2618</a>). + </li> +<li class="listitem"> + Various documentation improvements, including more obvious hyperlinks to + function overloads, header file information, examples for the handler type + requirements, and adding enum values to the index (<a href="https://svn.boost.org/trac/boost/ticket/3157" target="_top">#3157</a>, + <a href="https://svn.boost.org/trac/boost/ticket/2620" target="_top">#2620</a>). + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h10"></a> + <span><a name="boost_asio.history.asio_1_4_2___boost_1_39"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_4_2___boost_1_39">Asio + 1.4.2 / Boost 1.39</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Implement automatic resizing of the bucket array in the internal hash maps. + This is to improve performance for very large numbers of asynchronous operations + and also to reduce memory usage for very small numbers. A new macro <code class="computeroutput"><span class="identifier">BOOST_ASIO_HASH_MAP_BUCKETS</span></code> may be used + to tweak the sizes used for the bucket arrays. (N.B. this feature introduced + a bug which was fixed in Asio 1.4.3 / Boost 1.40.) + </li> +<li class="listitem"> + Add performance optimisation for the Windows IOCP backend for when no timers + are used. + </li> +<li class="listitem"> + Prevent locale settings from affecting formatting of TCP and UDP endpoints + (<a href="https://svn.boost.org/trac/boost/ticket/2682" target="_top">#2682</a>). + </li> +<li class="listitem"> + Fix a memory leak that occurred when an asynchronous SSL operation's completion + handler threw an exception (<a href="https://svn.boost.org/trac/boost/ticket/2910" target="_top">#2910</a>). + </li> +<li class="listitem"> + Fix the implementation of <code class="computeroutput"><span class="identifier">io_control</span><span class="special">()</span></code> so that it adheres to the documented + type requirements for IoControlCommand (<a href="https://svn.boost.org/trac/boost/ticket/2820" target="_top">#2820</a>). + </li> +<li class="listitem"> + Fix incompatibility between Asio and ncurses.h (<a href="https://svn.boost.org/trac/boost/ticket/2156" target="_top">#2156</a>). + </li> +<li class="listitem"> + On Windows, specifically handle the case when an overlapped <code class="computeroutput"><span class="identifier">ReadFile</span></code> call fails with <code class="computeroutput"><span class="identifier">ERROR_MORE_DATA</span></code>. This enables a hack + where a <code class="computeroutput"><span class="identifier">windows</span><span class="special">::</span><span class="identifier">stream_handle</span></code> can be used with a message-oriented + named pipe (<a href="https://svn.boost.org/trac/boost/ticket/2936" target="_top">#2936</a>). + </li> +<li class="listitem"> + Fix system call wrappers to always clear the error on success, as POSIX + allows successful system calls to modify errno (<a href="https://svn.boost.org/trac/boost/ticket/2953" target="_top">#2953</a>). + </li> +<li class="listitem"> + Don't include termios.h if <code class="computeroutput"><span class="identifier">BOOST_ASIO_DISABLE_SERIAL_PORT</span></code> + is defined (<a href="https://svn.boost.org/trac/boost/ticket/2917" target="_top">#2917</a>). + </li> +<li class="listitem"> + Cleaned up some more MSVC level 4 warnings (<a href="https://svn.boost.org/trac/boost/ticket/2828" target="_top">#2828</a>). + </li> +<li class="listitem"> + Various documentation fixes (<a href="https://svn.boost.org/trac/boost/ticket/2871" target="_top">#2871</a>). + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h11"></a> + <span><a name="boost_asio.history.asio_1_4_1___boost_1_38"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_4_1___boost_1_38">Asio + 1.4.1 / Boost 1.38</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Improved compatibility with some Windows firewall software. + </li> +<li class="listitem"> + Ensured arguments to <code class="computeroutput"><span class="identifier">windows</span><span class="special">::</span><span class="identifier">overlapped_ptr</span><span class="special">::</span><span class="identifier">complete</span><span class="special">()</span></code> are correctly passed to the completion + handler (<a href="https://svn.boost.org/trac/boost/ticket/2614" target="_top">#2614</a>). + </li> +<li class="listitem"> + Fixed a link problem and multicast failure on QNX (<a href="https://svn.boost.org/trac/boost/ticket/2504" target="_top">#2504</a>, + <a href="https://svn.boost.org/trac/boost/ticket/2530" target="_top">#2530</a>). + </li> +<li class="listitem"> + Fixed a compile error in SSL support on MinGW / g++ 3.4.5. + </li> +<li class="listitem"> + Drop back to using a pipe for notification if eventfd is not available + at runtime on Linux (<a href="https://svn.boost.org/trac/boost/ticket/2683" target="_top">#2683</a>). + </li> +<li class="listitem"> + Various minor bug and documentation fixes (<a href="https://svn.boost.org/trac/boost/ticket/2534" target="_top">#2534</a>, + <a href="https://svn.boost.org/trac/boost/ticket/2541" target="_top">#2541</a>, + <a href="https://svn.boost.org/trac/boost/ticket/2607" target="_top">#2607</a>, + <a href="https://svn.boost.org/trac/boost/ticket/2617" target="_top">#2617</a>, + <a href="https://svn.boost.org/trac/boost/ticket/2619" target="_top">#2619</a>). + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h12"></a> + <span><a name="boost_asio.history.asio_1_4_0___boost_1_37"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_4_0___boost_1_37">Asio + 1.4.0 / Boost 1.37</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Enhanced CompletionCondition concept with the signature <code class="computeroutput"><span class="identifier">size_t</span> + <span class="identifier">CompletionCondition</span><span class="special">(</span><span class="identifier">error_code</span> <span class="identifier">ec</span><span class="special">,</span> <span class="identifier">size_t</span> <span class="identifier">total</span><span class="special">)</span></code>, + where the return value indicates the maximum number of bytes to be transferred + on the next read or write operation. (The old CompletionCondition signature + is still supported for backwards compatibility). + </li> +<li class="listitem"> + New windows::overlapped_ptr class to allow arbitrary overlapped I/O functions + (such as TransmitFile) to be used with Asio. + </li> +<li class="listitem"> + On recent versions of Linux, an eventfd descriptor is now used (rather + than a pipe) to interrupt a blocked select/epoll reactor. + </li> +<li class="listitem"> + Added const overloads of lowest_layer(). + </li> +<li class="listitem"> + Synchronous read, write, accept and connect operations are now thread safe + (meaning that it is now permitted to perform concurrent synchronous operations + on an individual socket, if supported by the OS). + </li> +<li class="listitem"> + Reactor-based io_service implementations now use lazy initialisation to + reduce the memory usage of an io_service object used only as a message + queue. + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h13"></a> + <span><a name="boost_asio.history.asio_1_2_0___boost_1_36"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_2_0___boost_1_36">Asio + 1.2.0 / Boost 1.36</a> + </h4> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Added support for serial ports. + </li> +<li class="listitem"> + Added support for UNIX domain sockets. + </li> +<li class="listitem"> + Added support for raw sockets and ICMP. + </li> +<li class="listitem"> + Added wrappers for POSIX stream-oriented file descriptors (excluding regular + files). + </li> +<li class="listitem"> + Added wrappers for Windows stream-oriented <code class="computeroutput"><span class="identifier">HANDLE</span></code>s + such as named pipes (requires <code class="computeroutput"><span class="identifier">HANDLE</span></code>s + that work with I/O completion ports). + </li> +<li class="listitem"> + Added wrappers for Windows random-access <code class="computeroutput"><span class="identifier">HANDLE</span></code>s + such as files (requires <code class="computeroutput"><span class="identifier">HANDLE</span></code>s + that work with I/O completion ports). + </li> +<li class="listitem"> + Added support for reactor-style operations (i.e. they report readiness + but perform no I/O) using a new <code class="computeroutput"><span class="identifier">null_buffers</span></code> + type. + </li> +<li class="listitem"> + Added an iterator type for bytewise traversal of buffer sequences. + </li> +<li class="listitem"> + Added new <code class="computeroutput"><span class="identifier">read_until</span><span class="special">()</span></code> + and <code class="computeroutput"><span class="identifier">async_read_until</span><span class="special">()</span></code> + overloads that take a user-defined function object for locating message + boundaries. + </li> +<li class="listitem"> + Added an experimental two-lock queue (enabled by defining <code class="computeroutput"><span class="identifier">BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE</span></code>) that + may provide better <code class="computeroutput"><span class="identifier">io_service</span></code> + scalability across many processors. + </li> +<li class="listitem"> + Various fixes, performance improvements, and more complete coverage of + the custom memory allocation support. + </li> +</ul></div> +<h4> +<a name="boost_asio.history.h14"></a> + <span><a name="boost_asio.history.asio_1_0_0___boost_1_35"></a></span><a class="link" href="history.html#boost_asio.history.asio_1_0_0___boost_1_35">Asio + 1.0.0 / Boost 1.35</a> + </h4> +<p> + First release of Asio as part of Boost. + </p> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2003-2012 Christopher M. Kohlhoff<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) + </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="reference/is_error_code_enum_lt__ssl_errors__gt_/value.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_asio.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../boost_asio.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="index.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> |