EpollSelectDispatcher
Boost Software License Version 1.0. See LICENSE_BOOST.txt for details. Alternatively, this file may be distributed under the terms of the Tango 3-Clause BSD License (see LICENSE_BSD.txt for details).
Copyright (c) 2009-2016 dunnhumby Germany GmbH. All rights reserved.
Manages an I/O event loop with automatic handler invocation and unregistration.
The EpollSelectDispatcher class wraps a Tango EpollSelector and uses ISelectClient instances for Select I/O event registration, unregistration and event handler invocation. An I/O event loop is provided that runs while there are select event registrations. This loop automatically invokes the registered handlers; via the return value each handler may indicate that it wishes to be unregistered. After the ISelectClient instance has been unregistered, its finalize() method is invoked.
If a handler throws an Exception, it is caught, the ISelectClient containing that handler is unregistered immediately and finalize() is invoked. Exceptions thrown by the ISelectClient's finalize() methods are also caught.