object's event processing loop.
std::size_t run( asio::error_code & ec);
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
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
Subsequent calls to
poll_one() will return immediately unless there
is a prior call to
Set to indicate what error occurred, if any.
The number of handlers that were executed.
function must not be called from a thread that is currently calling one
on the same
function may also be used to dispatch ready handlers, but without blocking.