* Make number of strand implementations configurable by defining
BOOST_ASIO_STRAND_IMPLEMENTATIONS to the number.
* Programs can now define BOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION to
switch the allocation of strand implementations to use a round-robin approach
rather than hashing.
* Fix potential strand starvation issue that can occur when strand.post() is used.
* Update descriptor state allocation in kqueue_reactor to match approach used in
epoll_reactor.
* Construct epoll_reactor's interrupter member first to fix exception safety
issue. Fixes#6006
* Clarify that the read operation ends when the buffer is full. Fixes#5999
[SVN r75009]
Fix compile error in regex overload of async_read_until.hpp. Fixes#5688
Explicitly specify the signal() function from the global namespace. Fixes#5722
Don't read the clock unless the heap is non-empty.
Change the SSL buffers sizes so that they're large enough to hold a complete TLS record. Fixes#5854
Make sure the synchronous null_buffers operations obey the user's non_blocking setting. Fixes#5756
Set size of select fd_set at runtime when using Windows.
Disable warning due to const qualifier being applied to function type.
Fix crash due to gcc_x86_fenced_block that shows up when using the Intel C++ compiler. Fixes#5763
Specialise operations for buffer sequences that are arrays of exactly two buffers.
Initialise all OpenSSL algorithms.
Fix error mapping when session is gracefully shut down.
Various performance improvements:
* Split the task_io_service's run and poll code.
* Use thread-local operation queues in single-threaded use cases (i.e. concurrency_hint is 1) to eliminate a lock/unlock pair.
* Only fence block exit when a handler is being run directly out of the io_service.
* Prefer x86 mfence-based fenced block when available.
* Use a plain ol' long for the atomic_count when all thread support is disabled.
* Allow some epoll_reactor speculative operations to be performed without holding the lock.
* Improve locality of reference by performing an epoll_reactor's I/O operation immediately before the corresponding handler is called. This also improves scalability across CPUs when multiple threads are running the io_service.
* Pass same error_code variable through to each operation's complete() function.
* Optimise creation of and access to the io_service implementation.
Remove unused state in HTTP server examples.
Add latency test programs.
[SVN r74863]
Anotehr overhaul. Can now use `void_pointer` for links between nodes, although
it doesn't as I don't think `void_pointer` support is strong enough in existing
allocators.
Also no longer relies on using base pointers for custome pointer types. And
scaled back member function detection to just detect if an allocator has a
member, not what its signature is. I found that the trait could be confused by
ambiguous overloads. This might be fixable.
Better documentation of C++11 compliance to come.
[SVN r74859]