]> git.llucax.com Git - software/libev.git/blobdiff - event.h
*** empty log message ***
[software/libev.git] / event.h
diff --git a/event.h b/event.h
index 03506ad63656dde9e7391cef8421e658449659a5..48c34e6c1fb5c4c9251df72681b6c691b632b09e 100644 (file)
--- a/event.h
+++ b/event.h
 #ifndef _EVENT_H_
 #define _EVENT_H_
 
+#ifndef EV_EMBED
+# include "ev.h"
+#endif
+
 #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;
@@ -54,6 +56,8 @@ struct event
   int ev_pri;
   int ev_res;
   short ev_events;
+
+  char initialised; /* flag to work around some idiosynchrasies in the API */
 };
 
 #define EV_PERSIST                 0x10
@@ -61,7 +65,7 @@ struct event
 #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)
@@ -119,4 +123,13 @@ int event_base_dispatch (struct event_base *base);
 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_EMBED
+# include "event_compat.h"
+#endif
+
+#ifdef __cplusplus
+}
 #endif
+
+#endif
+