gevent.selectors – High-level IO Multiplexing¶
This module provides GeventSelector, a high-level IO
multiplexing mechanism. This is aliased to DefaultSelector.
This module provides the same API as the selectors defined in selectors.
On Python 2, this module is only available if the selectors2 backport is installed.
Added in version 20.6.0.
- DefaultSelector¶
alias of
GeventSelector
- class GeventSelector(hub=None)[source]¶
Bases:
_BaseSelectorImplA selector implementation using gevent primitives.
This is a type of
selectors.BaseSelector, so the documentation for that class applies here.Caution
As the base class indicates, it is critically important to unregister file objects before closing them. (Or close the selector they are registered with before closing them.) Failure to do so may crash the process or have other unintended results.
- close()[source]¶
Close the selector.
This must be called to make sure that any underlying resource is freed.
- register(fileobj, events, data=None)[source]¶
Register a file object for selection, monitoring it for I/O events.
fileobj is the file object to monitor. It may either be an integer file descriptor or an object with a
fileno()method. events is a bitwise mask of events to monitor. data is an opaque object.- Returns:
A new
SelectorKeyinstance.- Raises:
ValueError – In case of invalid event mask or file descriptor
KeyError – if the file object is already registered.
Changed in version 25.8.1: More reliably raises a
ValueErrorif the file descriptor is invalid.
- select(timeout=None)[source]¶
Poll for I/O.
Note that, like the built-in selectors, this will block indefinitely if no timeout is given and no files have been registered.
- unregister(fileobj)[source]¶
Unregister a file object.
Parameters: fileobj – file object or file descriptor
Returns: SelectorKey instance
Raises: KeyError if fileobj is not registered
Note: If fileobj is registered but has since been closed this does not raise OSError (even if the wrapped syscall does)