Merge from trunk:

* Update copyright notice.

* Version bump.

* Fix out-of-bounds address_v4::broadcast() return value on 64-bit systems.

* Use correct interrupt method when timerfd is not available. Fixes #5045

svn path=/branches/release/boost/asio.hpp; revision=68200
Merge selected bug fixes from trunk:

* Fixed a compile error on some versions of g++ due to anonymous enums.
  Fixes #4883.

* Fixed a bug in asio::streambuf where the consume() function did not
  always update the internal buffer pointers correctly. The problem may
  occur when the asio::streambuf is filled with data using the standard
  C++ member functions such as sputn(). (Note: the problem does not
  manifest when the streambuf is populated by the Asio free functions
  read(), async_read(), read_until() or async_read_until().)

* EV_ONESHOT seems to cause problems on some versions of Mac OS X, with
  the io_service destructor getting stuck inside the close() system
  call. Use EV_CLEAR instead. Fixes #5021.

* Fixed a bug on kqueue-based platforms, where reactor read operations
  that return false from their perform() function are not correctly
  re-registered with kqueue.  

* Fixed the linger socket option on non-Windows platforms.

* Fixed function name in comment for asio::placeholders::iterator.

svn path=/branches/release/boost/asio/; revision=69680
Merge asio from trunk.

svn path=/branches/release/boost/asio.hpp; revision=72428
Revision history.

svn path=/branches/release/libs/asio/; revision=72433
Merge fixes from trunk:

* Fix bullet list.

* Fix include guard.

* Zero-length reads and writes need to complete immediately.

* Fix for static mutex initialisation.

Authorized by Beman

svn path=/branches/release/boost/asio/; revision=72847
Merge from trunk...

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 path=/branches/release/boost/asio/; revision=74863
Version bump.

svn path=/branches/release/boost/asio/; revision=74864
Merge from trunk:

* 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 path=/branches/release/boost/asio/; revision=75009
Fix and regenerate documentation.

svn path=/branches/release/libs/asio/; revision=75011
Fix typo in revision history.

svn path=/branches/release/libs/asio/; revision=75473
Merge from trunk:

* Chrono support.

* Added object_handle support.

* Need to enable the basic_handle class when object_handle is supported.

* Update copyright notices.

* Fix MSVC "performance warning".

* Fix for NetBSD. Fixes #6098.

* Fix regression in buffered_write_stream. Fixes #6310.

* Fix deadlock on Mac OS X. Fixes #6275.

* On linux, connect can return EAGAIN in certain circumstances. Remap to another
  error so that it doesn't look like a non-blocking operation. Fixes #6048.

* Fix non-paged pool "leak" on Windows when io_service is repeatedly run without anything to do. Fixes #6321.

* Disable object_handle on Windows CE.

* Add extra include required for OVERLAPPED struct.

* Fix doxygen comments.

* Update documentation.

* Add missing class.

* Update copyright year.

svn path=/branches/release/boost/asio.hpp; revision=76516
Version bump.

svn path=/branches/release/boost/asio/; revision=76517
Merge [76990] from trunk:

Reverted earlier change to allow some speculative operations to be performed
without holding the lock, as it introduced a race condition in some
multithreaded scenarios.

svn path=/branches/release/boost/asio/; revision=77002
Merge [77033] from trunk:

Fixed a bug where the second buffer in an array of two buffers may be ignored
if the first buffer is empty.

svn path=/branches/release/boost/asio/; revision=77056
Merge from trunk:

* Use correct basic_io_object member functions so that basic_object_handle works with c++11 compilers.

* Respect the OPENSSL_NO_ENGINE feature test #define.

* Last version's race-condition-related revert in the epoll_reactor was
  incomplete and broke out-of-band handling. Fixed epoll_reactor::start_op so
  that it is now exactly the same as the older, working version.

* Remove trailing whitespace.

* Eliminate a lock/unlock pair when rescheduling a strand.

* Added lazy registration for EPOLLOUT.

* Revision history.

svn path=/branches/release/boost/asio/; revision=78708
Version bump.

svn path=/branches/release/boost/asio/; revision=78709
Merge from trunk:

* Add support for g++ 4.7 when compiling in C++11 mode. Update revision
  history. Fixes #6620.

* Use the thread's private_op_queue for handlers returned by the reactor task.
  This fixes a problem where signal_set handlers are not being called when the
  io_service's concurrency hint is set to 1. Fixes #6657.

svn path=/branches/release/boost/asio/; revision=78740
Merge from trunk:

* Make strand destruction a no-op, to allow strand objects to be destroyed after their associated io_service has been destroyed.

* Use the __thread keyword extension when compiling with gcc on linux x86.

* Avoid calling work_finished() if a completion handler creates more work.

* Eliminate redundant call to call_stack::contains(this) when dispatching a completion handler.

* Add support for some newer versions of glibc which provide the epoll_create1 function but always fail with ENOSYS. Fixes #7012

* Use SSE2 load and store fences.

* Throw exception if SSL engine initialisation fails. Fixes #6303

* Fix another regression in buffered_write_stream. Fixes #6310

svn path=/branches/release/boost/asio/; revision=79549
Version bump.

svn path=/branches/release/boost/asio/; revision=79550
Merge from trunk:

* Ensure use of __thread keyword is disabled for older Intel compilers.

svn path=/branches/release/boost/asio/; revision=79577