… | |
… | |
62 | #define EVLOOP_NONBLOCK 1 /* do not block/wait */ |
62 | #define EVLOOP_NONBLOCK 1 /* do not block/wait */ |
63 | #define EVLOOP_ONESHOT 2 /* block *once* only */ |
63 | #define EVLOOP_ONESHOT 2 /* block *once* only */ |
64 | void ev_loop (int flags); |
64 | void ev_loop (int flags); |
65 | extern int ev_loop_done; /* set to 1 to break out of event loop */ |
65 | extern int ev_loop_done; /* set to 1 to break out of event loop */ |
66 | |
66 | |
|
|
67 | #define EVHOOK_PREPOLL 0 /* called before updating fds, timers and blocking */ |
|
|
68 | #define EVHOOK_POSTPOLL 1 /* called after blocking */ |
|
|
69 | #define EVHOOK_NUM 2 /* just the # of hooks */ |
|
|
70 | typedef void (*ev_hook)(void); |
|
|
71 | void ev_hook_register (int type, ev_hook hook); |
|
|
72 | void ev_hook_unregister (int type, ev_hook hook); |
|
|
73 | |
67 | /* these may evaluate ev multiple times, and the other arguments at most once */ |
74 | /* these may evaluate ev multiple times, and the other arguments at most once */ |
68 | #define evw_init(ev,cb_,data_) do { (ev)->active = 0; (ev)->cb = (cb_); (ev)->data = (void *)data_; } while (0) |
75 | #define evw_init(ev,cb_,data_) do { (ev)->active = 0; (ev)->cb = (cb_); (ev)->data = (void *)data_; } while (0) |
69 | |
76 | |
70 | #define evio_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_); } while (0) |
77 | #define evio_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_); } while (0) |
71 | #define evtimer_set_rel(ev,after_,repeat_) do { (ev)->at = (after_); (ev)->repeat = (repeat_); (ev)->is_abs = 0; } while (0) |
78 | #define evtimer_set_rel(ev,after_,repeat_) do { (ev)->at = (after_); (ev)->repeat = (repeat_); (ev)->is_abs = 0; } while (0) |