object's event processing loop.
run() function blocks until all work has finished and
there are no more handlers to be dispatched, or until the
has been stopped.
Multiple threads may call the
run() function to set up a
pool of threads from which the
may execute handlers. All threads that are waiting in the pool are equivalent
may choose any one of them to invoke a handler.
A normal exit from the
run() function implies that the
object is stopped (the
stopped() function returns
Subsequent calls to
poll_one() will return immediately unless there is a
prior call to
The number of handlers that were executed.
run() function from a thread that is currently
calling one of
on the same
object may introduce the potential for deadlock. It is the caller's reponsibility
to avoid this.
poll() function may also be used to dispatch ready handlers,
but without blocking.