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.
(No files)
Note:
See TracChangeset
for help on using the changeset viewer.