]> git.llucax.com Git - software/libev.git/blobdiff - ev.h
*** empty log message ***
[software/libev.git] / ev.h
diff --git a/ev.h b/ev.h
index b563c3fcbfad8be8b418d654a6ebb6a7812c0f5f..aa746a559102f11fcff107a152e7ae6f84ead63b 100644 (file)
--- a/ev.h
+++ b/ev.h
@@ -100,7 +100,7 @@ struct ev_loop;
   int pending; /* private */                   \
   int priority; /* private */                  \
   EV_COMMON; /* rw */                          \
   int pending; /* private */                   \
   int priority; /* private */                  \
   EV_COMMON; /* rw */                          \
-  void (*cb)(EV_P_ struct type *, int revents); /* private */ /* gets invoked with an eventmask */
+  void (*cb)(EV_P_ struct type *, int revents) /* private */ /* gets invoked with an eventmask */
 
 #define EV_WATCHER_LIST(type)                  \
   EV_WATCHER (type);                           \
 
 #define EV_WATCHER_LIST(type)                  \
   EV_WATCHER (type);                           \
@@ -158,9 +158,6 @@ struct ev_io
 struct ev_signal
 {
   EV_WATCHER_LIST (ev_signal);
 struct ev_signal
 {
   EV_WATCHER_LIST (ev_signal);
-#if EV_MULTIPLICITY
-  struct ev_loop *loop;
-#endif
 
   int signum; /* ro */
 };
 
   int signum; /* ro */
 };
@@ -199,6 +196,20 @@ struct ev_child
   int rstatus; /* rw, holds the exit status, use the macros from sys/wait.h */
 };
 
   int rstatus; /* rw, holds the exit status, use the macros from sys/wait.h */
 };
 
+union ev_any_watcher
+{
+  struct ev_watcher w;
+  struct ev_watcher_list wl;
+  struct ev_io io;
+  struct ev_timer timer;
+  struct ev_periodic periodic;
+  struct ev_signal signal;
+  struct ev_idle idle;
+  struct ev_child child;
+  struct ev_prepare prepare;
+  struct ev_check check;
+};
+
 #define EVMETHOD_AUTO     0 /* consults environment */
 #define EVMETHOD_SELECT   1
 #define EVMETHOD_POLL     2
 #define EVMETHOD_AUTO     0 /* consults environment */
 #define EVMETHOD_SELECT   1
 #define EVMETHOD_POLL     2
@@ -215,6 +226,20 @@ int ev_version_minor (void);
 
 ev_tstamp ev_time (void);
 
 
 ev_tstamp ev_time (void);
 
+/* Sets the allocation function to use, works like realloc.
+ * It is used to allocate and free memory.
+ * If it returns zero when memory needs to be allocated, the library might abort
+ * or take some potentially destructive action.
+ * The default is your system realloc function.
+ */
+void ev_set_allocator (void *(*cb)(void *ptr, long size));
+
+/* set the callback function to call on a
+ * retryable syscall error
+ * (such as failed select, poll, epoll_wait)
+ */
+void ev_set_syserr_cb (void (*cb)(const char *msg));
+
 # if EV_MULTIPLICITY
 /* the default loop is the only one that handles signals and child watchers */
 /* you can call this as often as you like */
 # if EV_MULTIPLICITY
 /* the default loop is the only one that handles signals and child watchers */
 /* you can call this as often as you like */