Implements interfaces: twisted.internet.interfaces.IReactorDaemonize, twisted.internet.interfaces.IReactorFDSet

A reactor that uses kqueue(2)/kevent(2) and relies on Python 2.6 or higher which has built in support for kqueue in the select module.

Method __init__ Initialize kqueue object, file descriptor tracking dictionaries, and the base class.
Method beforeDaemonize Implement IReactorDaemonize.beforeDaemonize.
Method afterDaemonize Implement IReactorDaemonize.afterDaemonize.
Method addReader Implement IReactorFDSet.addReader.
Method addWriter Implement IReactorFDSet.addWriter.
Method removeReader Implement IReactorFDSet.removeReader.
Method removeWriter Implement IReactorFDSet.removeWriter.
Method removeAll Implement IReactorFDSet.removeAll.
Method getReaders Implement IReactorFDSet.getReaders.
Method getWriters Implement IReactorFDSet.getWriters.
Method doKEvent Poll the kqueue for new events.
Instance Variable _kq A kqueue which will be used to check for I/O readiness.
Instance Variable _impl The implementation of _IKQueue to use.
Instance Variable _selectables A dictionary mapping integer file descriptors to instances of FileDescriptor which have been registered with the reactor. All FileDescriptors which are currently receiving read or write readiness notifications will be present as values in this dictionary.
Instance Variable _reads A set containing integer file descriptors. Values in this set will be registered with _kq for read readiness notifications which will be dispatched to the corresponding FileDescriptor instances in _selectables.
Instance Variable _writes A set containing integer file descriptors. Values in this set will be registered with _kq for write readiness notifications which will be dispatched to the corresponding FileDescriptor instances in _selectables.
Method _updateRegistration Private method for changing kqueue registration on a given FD filtering for events given filter/op. This will never block and returns nothing.
Method _doWriteOrRead Private method called when a FD is ready for reading, writing or was lost. Do the work and raise errors where necessary.

Inherited from PluggableResolverMixin (via PosixReactorBase, ReactorBase):

Instance Variable resolver The installed IResolverSimple.
Method installResolver See IReactorPluggableResolver.
Method installNameResolver See IReactorPluggableNameResolver.
Method nameResolver Implementation of read-only IReactorPluggableNameResolver.nameResolver.
Instance Variable _nameResolver The installed IHostnameResolver.

Inherited from PluggableResolverMixin (via PosixReactorBase, ReactorBase):

Instance Variable resolver The installed IResolverSimple.
Method installResolver See IReactorPluggableResolver.
Method installNameResolver See IReactorPluggableNameResolver.
Method nameResolver Implementation of read-only IReactorPluggableNameResolver.nameResolver.
Instance Variable _nameResolver The installed IHostnameResolver.

Inherited from PluggableResolverMixin (via PosixReactorBase, ReactorBase):

Instance Variable resolver The installed IResolverSimple.
Method installResolver See IReactorPluggableResolver.
Method installNameResolver See IReactorPluggableNameResolver.
Method nameResolver Implementation of read-only IReactorPluggableNameResolver.nameResolver.
Instance Variable _nameResolver The installed IHostnameResolver.

Inherited from PluggableResolverMixin (via PosixReactorBase, ReactorBase):

Instance Variable resolver The installed IResolverSimple.
Method installResolver See IReactorPluggableResolver.
Method installNameResolver See IReactorPluggableNameResolver.
Method nameResolver Implementation of read-only IReactorPluggableNameResolver.nameResolver.
Instance Variable _nameResolver The installed IHostnameResolver.

Inherited from PluggableResolverMixin (via PosixReactorBase, ReactorBase):

Instance Variable resolver The installed IResolverSimple.
Method installResolver See IReactorPluggableResolver.
Method installNameResolver See IReactorPluggableNameResolver.
Method nameResolver Implementation of read-only IReactorPluggableNameResolver.nameResolver.
Instance Variable _nameResolver The installed IHostnameResolver.
_kq =
A kqueue which will be used to check for I/O readiness.
_impl =
The implementation of _IKQueue to use.
_selectables =
A dictionary mapping integer file descriptors to instances of FileDescriptor which have been registered with the reactor. All FileDescriptors which are currently receiving read or write readiness notifications will be present as values in this dictionary.
_reads =
A set containing integer file descriptors. Values in this set will be registered with _kq for read readiness notifications which will be dispatched to the corresponding FileDescriptor instances in _selectables.
_writes =
A set containing integer file descriptors. Values in this set will be registered with _kq for write readiness notifications which will be dispatched to the corresponding FileDescriptor instances in _selectables.
def __init__(self, _kqueueImpl=select): (source)

Initialize kqueue object, file descriptor tracking dictionaries, and the base class.

See:

  • http://docs.python.org/library/select.html
  • www.freebsd.org/cgi/man.cgi?query=kqueue
  • people.freebsd.org/~jlemon/papers/kqueue.pdf
Parameters_kqueueImplThe implementation of _IKQueue to use. A hook for testing.
def _updateRegistration(self, fd, filter, op): (source)

Private method for changing kqueue registration on a given FD filtering for events given filter/op. This will never block and returns nothing.

def doKEvent(self, timeout): (source)

Poll the kqueue for new events.

def _doWriteOrRead(self, selectable, fd, event): (source)

Private method called when a FD is ready for reading, writing or was lost. Do the work and raise errors where necessary.

API Documentation for Twisted, generated by pydoctor at 2019-08-06 12:10:50.