Boost
C++ Libraries
...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
This is an older version of Boost and was released in 2017. The current version is 1.89.0.
Run the io_service object'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.
A normal exit from the run() function implies that the io_service object is stopped
(the stopped()
function returns true).
Subsequent calls to run(), run_one(), poll() or poll_one() will return immediately unless there
is a prior call to reset().
The number of handlers that were executed.
Thrown on failure.
The run()
function must not be called from a thread that is currently calling one
of run(),
run_one(),
poll()
or poll_one()
on the same io_service object.
The poll()
function may also be used to dispatch ready handlers, but without blocking.