File Release Notes and Changelog
Notes:
The asio 1.3.1 release continues the 1.3.x development series, and
represents the complete feature set that will become asio 1.4.x.
Changes:
The new features in this release are:
* Lazy initialisation of the io_service reactor task.
On platforms that use a reactor-based io_service (i.e. all POSIX
platforms and Windows when I/O completion ports are disabled), the
reactor is now lazily initialised when the first socket, timer or
descriptor is created on the io_sevice. This change significantly
reduces the memory usage of an io_service that is used purely as a
message queue.
* Bounds checking in ip::address_v4 and ip::address_v6.
The address classes now perform boundary checking of integer
arguments as per the TR2 networking proposal.
The bug fixes of note in this release are:
* Fixed an infinite recursion in synchronous SSL handshaking.
* Fixed a memory leak cause by the prior change to allow globally
scoped io_service objects in dynamically loaded libraries on
Windows. Such applications must now call:
asio::detail::thread::set_terminate_threads(true);
prior to the DLL being unloaded, to prevent deadlock in DllMain.
* Ensured the streambuf's egptr() (the end of the get area) is kept
synchronised with changes to pptr() (the start of the put area).
* Reduced data copying when a streambuf's internal buffer is resized
or its contents are moved.
* Made service typeids work across shared library boundaries when
the default gcc linker visibility is set to hidden.
* Fixed basic_socket_streambuf<> and basic_socket_iostream<> to work
with Protocol objects that do not provide a resolver.