#ifndef _EVENT_H_
#define _EVENT_H_
+#include "ev.h"
+
#ifdef __cplusplus
extern "C" {
#endif
-#include "ev.h"
-
struct event
{
- /* lib watchers we map to */
+ /* libev watchers we map onto */
union {
struct ev_io io;
struct ev_signal sig;
int ev_pri;
int ev_res;
short ev_events;
+
+ char initialised; /* flag to work around some idiosynchrasies in the API */
};
#define EV_PERSIST 0x10
#define EVENT_SIGNAL(ev) ((int) (ev)->ev_fd)
#define EVENT_FD(ev) ((int) (ev)->ev_fd)
-#define event_initialized(ev) 1
+#define event_initialized(ev) ((ev)->initialised)
#define evtimer_add(ev,tv) event_add (ev, tv)
#define evtimer_set(ev,cb,data) event_set (ev, -1, 0, cb, data)
int event_base_once (struct event_base *base, int fd, short events, void (*cb)(int, short, void *), void *arg, struct timeval *tv);
int event_base_priority_init (struct event_base *base, int fd);
+#ifndef EV_STANDALONE
+# include "event_compat.h"
#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+