ocean.io.select.selector

Modules

EpollException
module ocean.io.select.selector.EpollException

Key exception -- thrown when an error event was reported for a selected key.

EpollFdSanity
module ocean.io.select.selector.EpollFdSanity

As linux on 64 machines is using only up to 56 bits for the user address space (see https://www.kernel.org/doc/Documentation/x86/x86_64/mm.txt) we can use bits from at least 56 to 63 for stuffing in the least significant 8 bits of the fd into the epoll registration. This can be used to check if the ISelectClient's registration triggering in epoll wait is made for the previous usage of the ISelectClient (for the wrong fd). This is not 100% accurate, as the file descriptors could be reused but it can be in general this is the best we can to find out expired registrations that are not unregistered from epoll.

IEpollSelectDispatcherInfo
module ocean.io.select.selector.IEpollSelectDispatcherInfo

Informational interface to an EpollSelectDispatcher instance.

RegisteredClients
module ocean.io.select.selector.RegisteredClients

Classes used by the EpollSelectDispatcher to manage the set of registered clients.

SelectedKeysHandler
module ocean.io.select.selector.SelectedKeysHandler

Handles a set of selected epoll keys. A selected epoll key is an event reported by epoll bundled with its context; the context is the ISelectClient object that contains the file descriptor and the event handler method.

TimeoutSelectedKeysHandler
module ocean.io.select.selector.TimeoutSelectedKeysHandler

Handles a set of selected epoll keys and handles registered select clients that timed out.

model
module ocean.io.select.selector.model