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); \
struct ev_signal
{
EV_WATCHER_LIST (ev_signal);
-#if EV_MULTIPLICITY
- struct ev_loop *loop;
-#endif
int signum; /* ro */
};
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 */