| <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> |
| <a name="boost_asio.history.asio_1_6_0___boost_1_47"></a><h4> |
| <a name="boost_asio.history.asio_1_6_0___boost_1_47-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_4_9___boost_1_46_1"></a><h4> |
| <a name="boost_asio.history.asio_1_4_9___boost_1_46_1-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_4_8___boost_1_46"></a><h4> |
| <a name="boost_asio.history.asio_1_4_8___boost_1_46-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_4_7___boost_1_45"></a><h4> |
| <a name="boost_asio.history.asio_1_4_7___boost_1_45-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_4_6___boost_1_44"></a><h4> |
| <a name="boost_asio.history.asio_1_4_6___boost_1_44-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_4_5___boost_1_43"></a><h4> |
| <a name="boost_asio.history.asio_1_4_5___boost_1_43-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_4_4___boost_1_42"></a><h4> |
| <a name="boost_asio.history.asio_1_4_4___boost_1_42-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_4_3___boost_1_40"></a><h4> |
| <a name="boost_asio.history.asio_1_4_3___boost_1_40-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_4_2___boost_1_39"></a><h4> |
| <a name="boost_asio.history.asio_1_4_2___boost_1_39-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_4_1___boost_1_38"></a><h4> |
| <a name="boost_asio.history.asio_1_4_1___boost_1_38-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_4_0___boost_1_37"></a><h4> |
| <a name="boost_asio.history.asio_1_4_0___boost_1_37-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_2_0___boost_1_36"></a><h4> |
| <a name="boost_asio.history.asio_1_2_0___boost_1_36-heading"></a> |
| <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> |
| <a name="boost_asio.history.asio_1_0_0___boost_1_35"></a><h4> |
| <a name="boost_asio.history.asio_1_0_0___boost_1_35-heading"></a> |
| <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-2011 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> |