Re: [Boost-bugs] [Boost C++ Libraries] #5756: read_some() with null_buffers blocks in non-blocking mode

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #5756: read_some() with null_buffers blocks in non-blocking mode
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-10-09 22:00:14

#5756: read_some() with null_buffers blocks in non-blocking mode
  Reporter: Gennady Proskurin <gpr@…> | Owner: chris_kohlhoff
      Type: Bugs | Status: closed
 Milestone: To Be Determined | Component: asio
   Version: Boost 1.47.0 | Severity: Problem
Resolution: fixed | Keywords:
Changes (by chris_kohlhoff):

  * status: new => closed
  * resolution: => fixed


 (In [74863]) 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

 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

 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

 * Prefer x86 mfence-based fenced block when available.

 * Use a plain ol' long for the atomic_count when all thread support is

 * 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()

 * Optimise creation of and access to the io_service implementation.

 Remove unused state in HTTP server examples.

 Add latency test programs.

Ticket URL: <>
Boost C++ Libraries <>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:07 UTC