… | |
… | |
24 | |
24 | |
25 | struct ev_timer |
25 | struct ev_timer |
26 | { |
26 | { |
27 | EV_WATCHER_LIST (ev_timer); |
27 | EV_WATCHER_LIST (ev_timer); |
28 | |
28 | |
29 | ev_tstamp at; /* ro */ |
29 | ev_tstamp at; /* private */ |
30 | ev_tstamp repeat; /* rw */ |
30 | ev_tstamp repeat; /* rw */ |
31 | unsigned char is_abs; /* rw */ |
31 | unsigned char is_abs; /* ro */ |
32 | }; |
32 | }; |
33 | |
33 | |
34 | struct ev_io |
34 | struct ev_io |
35 | { |
35 | { |
36 | EV_WATCHER_LIST (ev_io); |
36 | EV_WATCHER_LIST (ev_io); |
… | |
… | |
59 | extern ev_tstamp ev_now; /* time w.r.t. timers and the eventloop, updated after each poll */ |
59 | extern ev_tstamp ev_now; /* time w.r.t. timers and the eventloop, updated after each poll */ |
60 | ev_tstamp ev_time (void); |
60 | ev_tstamp ev_time (void); |
61 | |
61 | |
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 | int 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 | /* these may evaluate ev multiple times, and the other arguments at most once */ |
67 | /* 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) |
68 | #define evw_init(ev,cb_,data_) do { (ev)->active = 0; (ev)->cb = (cb_); (ev)->data = (void *)data_; } while (0) |
|
|
69 | |
69 | #define evio_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_); } while (0) |
70 | #define evio_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_); } while (0) |
70 | #define evtimer_set_rel(ev,after_,repeat_) do { (ev)->at = (after_); (ev)->repeat = (repeat_); (ev)->is_abs = 0; } while (0) |
71 | #define evtimer_set_rel(ev,after_,repeat_) do { (ev)->at = (after_); (ev)->repeat = (repeat_); (ev)->is_abs = 0; } while (0) |
71 | #define evtimer_set_abs(ev,at_,repeat_) do { (ev)->at = (at_); (ev)->repeat = (repeat_); (ev)->is_abs = 1; } while (0) |
72 | #define evtimer_set_abs(ev,at_,repeat_) do { (ev)->at = (at_); (ev)->repeat = (repeat_); (ev)->is_abs = 1; } while (0) |
72 | #define evsignal_set(ev,signum_) do { (ev)->signum = (signum_); } while (0) |
73 | #define evsignal_set(ev,signum_) do { (ev)->signum = (signum_); } while (0) |
73 | |
74 | |