...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Run the io_service's event processing loop.
std::size_t run();
The run() function blocks until all work has finished and there are no more handlers to be dispatched, or until the io_service has been stopped.
Multiple threads may call the run() function to set up a pool of threads from which the io_service may execute handlers. All threads that are waiting in the pool are equivalent and the io_service may choose any one of them to invoke a handler.
The run() function may be safely called again once it has completed only after a call to reset().
The number of handlers that were executed.
Thrown on failure.
The poll() function may also be used to dispatch ready handlers, but without blocking.