<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.75.2">
<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&lt; boost::asio::error::ssl_errors &gt;::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_4_7___boost_1_45"></a><h4>
<a name="id1406562"></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">&lt;&gt;</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">
          Deprecated the separate compilation header <code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
          in favour of <code class="computeroutput"><span class="special">&lt;</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">&gt;</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="id1407141"></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">&lt;</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">&gt;</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">&lt;</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">&gt;</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="id1407648"></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="id1408083"></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">&amp;</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="id1408367"></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">&lt;&gt;</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="id1408670"></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="id1408924"></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="id1409086"></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="id1409218"></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="id1409438"></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 &#169; 2003 - 2010 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>
