|
|
|
@ -100,13 +100,14 @@ watcher.
|
|
|
|
|
Libev supports C<select>, C<poll>, the Linux-specific C<epoll>, the
|
|
|
|
|
BSD-specific C<kqueue> and the Solaris-specific event port mechanisms
|
|
|
|
|
for file descriptor events (C<ev_io>), the Linux C<inotify> interface
|
|
|
|
|
(for C<ev_stat>), relative timers (C<ev_timer>), absolute timers
|
|
|
|
|
with customised rescheduling (C<ev_periodic>), synchronous signals
|
|
|
|
|
(C<ev_signal>), process status change events (C<ev_child>), and event
|
|
|
|
|
watchers dealing with the event loop mechanism itself (C<ev_idle>,
|
|
|
|
|
C<ev_embed>, C<ev_prepare> and C<ev_check> watchers) as well as
|
|
|
|
|
file watchers (C<ev_stat>) and even limited support for fork events
|
|
|
|
|
(C<ev_fork>).
|
|
|
|
|
(for C<ev_stat>), Linux eventfd/signalfd (for faster and cleaner
|
|
|
|
|
inter-thread wakeup (C<ev_async>)/signal handling (C<ev_signal>)) relative
|
|
|
|
|
timers (C<ev_timer>), absolute timers with customised rescheduling
|
|
|
|
|
(C<ev_periodic>), synchronous signals (C<ev_signal>), process status
|
|
|
|
|
change events (C<ev_child>), and event watchers dealing with the event
|
|
|
|
|
loop mechanism itself (C<ev_idle>, C<ev_embed>, C<ev_prepare> and
|
|
|
|
|
C<ev_check> watchers) as well as file watchers (C<ev_stat>) and even
|
|
|
|
|
limited support for fork events (C<ev_fork>).
|
|
|
|
|
|
|
|
|
|
It also is quite fast (see this
|
|
|
|
|
L<benchmark|http://libev.schmorp.de/bench.html> comparing it to libevent
|
|
|
|
|