… | |
… | |
98 | =head2 FEATURES |
98 | =head2 FEATURES |
99 | |
99 | |
100 | Libev supports C<select>, C<poll>, the Linux-specific C<epoll>, the |
100 | Libev supports C<select>, C<poll>, the Linux-specific C<epoll>, the |
101 | BSD-specific C<kqueue> and the Solaris-specific event port mechanisms |
101 | BSD-specific C<kqueue> and the Solaris-specific event port mechanisms |
102 | for file descriptor events (C<ev_io>), the Linux C<inotify> interface |
102 | for file descriptor events (C<ev_io>), the Linux C<inotify> interface |
103 | (for C<ev_stat>), relative timers (C<ev_timer>), absolute timers |
103 | (for C<ev_stat>), Linux eventfd/signalfd (for faster and cleaner |
104 | with customised rescheduling (C<ev_periodic>), synchronous signals |
104 | inter-thread wakeup (C<ev_async>)/signal handling (C<ev_signal>)) relative |
105 | (C<ev_signal>), process status change events (C<ev_child>), and event |
105 | timers (C<ev_timer>), absolute timers with customised rescheduling |
106 | watchers dealing with the event loop mechanism itself (C<ev_idle>, |
106 | (C<ev_periodic>), synchronous signals (C<ev_signal>), process status |
107 | C<ev_embed>, C<ev_prepare> and C<ev_check> watchers) as well as |
107 | change events (C<ev_child>), and event watchers dealing with the event |
108 | file watchers (C<ev_stat>) and even limited support for fork events |
108 | loop mechanism itself (C<ev_idle>, C<ev_embed>, C<ev_prepare> and |
109 | (C<ev_fork>). |
109 | C<ev_check> watchers) as well as file watchers (C<ev_stat>) and even |
|
|
110 | limited support for fork events (C<ev_fork>). |
110 | |
111 | |
111 | It also is quite fast (see this |
112 | It also is quite fast (see this |
112 | L<benchmark|http://libev.schmorp.de/bench.html> comparing it to libevent |
113 | L<benchmark|http://libev.schmorp.de/bench.html> comparing it to libevent |
113 | for example). |
114 | for example). |
114 | |
115 | |
… | |
… | |
3406 | =item Ocaml |
3407 | =item Ocaml |
3407 | |
3408 | |
3408 | Erkki Seppala has written Ocaml bindings for libev, to be found at |
3409 | Erkki Seppala has written Ocaml bindings for libev, to be found at |
3409 | L<http://modeemi.cs.tut.fi/~flux/software/ocaml-ev/>. |
3410 | L<http://modeemi.cs.tut.fi/~flux/software/ocaml-ev/>. |
3410 | |
3411 | |
|
|
3412 | =item Lua |
|
|
3413 | |
|
|
3414 | Brian Maher has written a partial interface to libev |
|
|
3415 | for lua (only C<ev_io> and C<ev_timer>), to be found at |
|
|
3416 | L<http://github.com/brimworks/lua-ev>. |
|
|
3417 | |
3411 | =back |
3418 | =back |
3412 | |
3419 | |
3413 | |
3420 | |
3414 | =head1 MACRO MAGIC |
3421 | =head1 MACRO MAGIC |
3415 | |
3422 | |
… | |
… | |
3581 | keeps libev from including F<config.h>, and it also defines dummy |
3588 | keeps libev from including F<config.h>, and it also defines dummy |
3582 | implementations for some libevent functions (such as logging, which is not |
3589 | implementations for some libevent functions (such as logging, which is not |
3583 | supported). It will also not define any of the structs usually found in |
3590 | supported). It will also not define any of the structs usually found in |
3584 | F<event.h> that are not directly supported by the libev core alone. |
3591 | F<event.h> that are not directly supported by the libev core alone. |
3585 | |
3592 | |
3586 | In stanbdalone mode, libev will still try to automatically deduce the |
3593 | In standalone mode, libev will still try to automatically deduce the |
3587 | configuration, but has to be more conservative. |
3594 | configuration, but has to be more conservative. |
3588 | |
3595 | |
3589 | =item EV_USE_MONOTONIC |
3596 | =item EV_USE_MONOTONIC |
3590 | |
3597 | |
3591 | If defined to be C<1>, libev will try to detect the availability of the |
3598 | If defined to be C<1>, libev will try to detect the availability of the |