event.h
event.c
+AUTOCONF SUPPORT
+
+ Instead of using EV_STANDALONE=1 and providing your config in whatever
+ way you want, you can also m4_include([libev.m4]) in your configure.ac
+ and leave EV_STANDALONE off. ev.c will then include "config.h" and
+ configure itself accordingly.
+
PREPROCESSOR SYMBOLS
Libev can be configured via a variety of preprocessor symbols you have to define
- before including any of its files. The default is not to build for mulciplicity
+ before including any of its files. The default is not to build for multiplicity
and only include the select backend.
EV_STANDALONE
will also not define any of the structs usually found in "event.h"
that are not directly supported by libev code alone.
- EV_H
-
- The name of the ev.h header file used to include it. The default
- if undefined is <ev.h> in event.h and "ev.h" in ev.c. This can
- be used to virtually rename the ev.h header file in case of
- conflicts.
-
- EV_EVENT_H
-
- Similarly to EV_H, this macro cna be used to override event.c's idea
- of where the event.h header can be found.
-
EV_USE_MONOTONIC
If undefined or defined to be "1", libev will try to detect the
will be detected at runtime and routed around by disabling this
backend.
- EV_COMMON
-
- By default, all watchers have a "void *data" member. By redefining
- this macro to a something else you can include more and other types
- of members. You have to define it each time you include one of the
- files, though, and it must be identical each time.
+ EV_H
- For example, the perl EV module uses this:
+ The name of the ev.h header file used to include it. The default
+ if undefined is <ev.h> in event.h and "ev.h" in ev.c. This can
+ be used to virtually rename the ev.h header file in case of
+ conflicts.
- #define EV_COMMON \
- SV *self; /* contains this struct */ \
- SV *cb_sv, *fh /* note no trailing ";" */
+ EV_EVENT_H
+
+ Similarly to EV_H, this macro cna be used to override event.c's idea
+ of how the event.h header can be found.
EV_PROTOTYPES
event loop pointer argument. Instead, all functions act on the
single default loop.
+ EV_PERIODICS
+
+ If undefined or defined to be "1", then periodic timers are
+ supported, otherwise not. This saves a few kb of code.
+
+ EV_COMMON
+
+ By default, all watchers have a "void *data" member. By redefining
+ this macro to a something else you can include more and other types
+ of members. You have to define it each time you include one of the
+ files, though, and it must be identical each time.
+
+ For example, the perl EV module uses this:
+
+ #define EV_COMMON \
+ SV *self; /* contains this struct */ \
+ SV *cb_sv, *fh /* note no trailing ";" */
+
+ EV_CB_DECLARE(type)
+ EV_CB_INVOKE(watcher,revents)
+ ev_set_cb(ev,cb)
+
+ Can be used to change the callback member declaration in each
+ watcher, and the way callbacks are invoked and set. Must expand
+ to a struct member definition and a statement, respectively. See
+ the ev.v header file for their default definitions. One possible
+ use for overriding these is to avoid the ev_loop pointer as first
+ argument in all cases, or to use method calls instead of plain
+ function calls in C++.
+
EXAMPLES
For a real-world example of a program the includes libev