mood.event documentation

Python libev interface

libev is an event loop: you register interest in certain events (such as a file descriptor being readable or a timeout occurring), and it will manage these event sources and provide your program with events. To do this, it must take more or less complete control over your process (or thread) by executing the event loop handler, and will then communicate events via a callback mechanism. You register interest in certain events by registering so-called event watchers, which you initialise with the details of the event, and then hand over to libev by starting the watcher.

libev supports select(2), poll(2), the Linux-specific epoll(7), the BSD-specific kqueue and the Solaris-specific event port mechanisms for file descriptor events (Io), Linux eventfd(2)/signalfd(2) (for faster and cleaner inter-thread wakeup (Async)/signal handling (Signal)), relative timers (Timer), absolute timers (Periodic), timers with customised rescheduling (Scheduler), synchronous signals (Signal), process status change events (Child), event watchers dealing with the event loop mechanism itself (Idle, Embed, Prepare and Check watchers) and even limited support for fork events (Fork).

It also is quite fast.

libev is written and maintained by Marc Lehmann.

Note

This documentation is largely adapted from libev’s documentation.

Indices and tables