… | |
… | |
216 | int rstatus; /* rw, holds the exit status, use the macros from sys/wait.h */ |
216 | int rstatus; /* rw, holds the exit status, use the macros from sys/wait.h */ |
217 | } ev_child; |
217 | } ev_child; |
218 | |
218 | |
219 | #if EV_STAT_ENABLE |
219 | #if EV_STAT_ENABLE |
220 | /* st_nlink = 0 means missing file or other error */ |
220 | /* st_nlink = 0 means missing file or other error */ |
221 | #ifdef _WIN32 |
221 | # ifdef _WIN32 |
222 | typedef struct _stati64 ev_statdata; |
222 | typedef struct _stati64 ev_statdata; |
223 | #else |
223 | # else |
224 | typedef struct stat ev_statdata; |
224 | typedef struct stat ev_statdata; |
225 | #endif |
225 | # endif |
226 | |
226 | |
227 | /* invoked each time the stat data changes for a given path */ |
227 | /* invoked each time the stat data changes for a given path */ |
228 | /* revent EV_STAT */ |
228 | /* revent EV_STAT */ |
229 | typedef struct ev_stat |
229 | typedef struct ev_stat |
230 | { |
230 | { |
231 | EV_WATCHER (ev_stat) |
231 | EV_WATCHER_LIST (ev_stat) |
232 | |
232 | |
233 | ev_timer timer; /* private */ |
233 | ev_timer timer; /* private */ |
234 | ev_tstamp interval; /* ro */ |
234 | ev_tstamp interval; /* ro */ |
235 | const char *path; /* ro */ |
235 | const char *path; /* ro */ |
236 | ev_statdata prev; /* ro */ |
236 | ev_statdata prev; /* ro */ |
237 | ev_statdata attr; /* ro */ |
237 | ev_statdata attr; /* ro */ |
|
|
238 | |
|
|
239 | int wd; /* wd for inotify, fd for kqueue */ |
238 | } ev_stat; |
240 | } ev_stat; |
239 | #endif |
241 | #endif |
240 | |
242 | |
241 | /* invoked when the nothing else needs to be done, keeps the process from blocking */ |
243 | /* invoked when the nothing else needs to be done, keeps the process from blocking */ |
242 | /* revent EV_IDLE */ |
244 | /* revent EV_IDLE */ |
… | |
… | |
308 | /* bits for ev_default_loop and ev_loop_new */ |
310 | /* bits for ev_default_loop and ev_loop_new */ |
309 | /* the default */ |
311 | /* the default */ |
310 | #define EVFLAG_AUTO 0x00000000UL /* not quite a mask */ |
312 | #define EVFLAG_AUTO 0x00000000UL /* not quite a mask */ |
311 | /* flag bits */ |
313 | /* flag bits */ |
312 | #define EVFLAG_NOENV 0x01000000UL /* do NOT consult environment */ |
314 | #define EVFLAG_NOENV 0x01000000UL /* do NOT consult environment */ |
|
|
315 | #define EVFLAG_FORKCHECK 0x02000000UL /* check for a fork in each iteration */ |
313 | /* method bits to be ored together */ |
316 | /* method bits to be ored together */ |
314 | #define EVBACKEND_SELECT 0x00000001UL /* about anywhere */ |
317 | #define EVBACKEND_SELECT 0x00000001UL /* about anywhere */ |
315 | #define EVBACKEND_POLL 0x00000002UL /* !win */ |
318 | #define EVBACKEND_POLL 0x00000002UL /* !win */ |
316 | #define EVBACKEND_EPOLL 0x00000004UL /* linux */ |
319 | #define EVBACKEND_EPOLL 0x00000004UL /* linux */ |
317 | #define EVBACKEND_KQUEUE 0x00000008UL /* bsd */ |
320 | #define EVBACKEND_KQUEUE 0x00000008UL /* bsd */ |
… | |
… | |
422 | #define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_); } while (0) |
425 | #define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_); } while (0) |
423 | #define ev_timer_set(ev,after_,repeat_) do { (ev)->at = (after_); (ev)->repeat = (repeat_); } while (0) |
426 | #define ev_timer_set(ev,after_,repeat_) do { (ev)->at = (after_); (ev)->repeat = (repeat_); } while (0) |
424 | #define ev_periodic_set(ev,at_,ival_,res_) do { (ev)->at = (at_); (ev)->interval = (ival_); (ev)->reschedule_cb= (res_); } while (0) |
427 | #define ev_periodic_set(ev,at_,ival_,res_) do { (ev)->at = (at_); (ev)->interval = (ival_); (ev)->reschedule_cb= (res_); } while (0) |
425 | #define ev_signal_set(ev,signum_) do { (ev)->signum = (signum_); } while (0) |
428 | #define ev_signal_set(ev,signum_) do { (ev)->signum = (signum_); } while (0) |
426 | #define ev_child_set(ev,pid_) do { (ev)->pid = (pid_); } while (0) |
429 | #define ev_child_set(ev,pid_) do { (ev)->pid = (pid_); } while (0) |
427 | #define ev_stat_set(ev,path_,interval_) do { (ev)->path = (path_); (ev)->interval = (interval_); } while (0) |
430 | #define ev_stat_set(ev,path_,interval_) do { (ev)->path = (path_); (ev)->interval = (interval_); (ev)->wd = -2; } while (0) |
428 | #define ev_idle_set(ev) /* nop, yes, this is a serious in-joke */ |
431 | #define ev_idle_set(ev) /* nop, yes, this is a serious in-joke */ |
429 | #define ev_prepare_set(ev) /* nop, yes, this is a serious in-joke */ |
432 | #define ev_prepare_set(ev) /* nop, yes, this is a serious in-joke */ |
430 | #define ev_check_set(ev) /* nop, yes, this is a serious in-joke */ |
433 | #define ev_check_set(ev) /* nop, yes, this is a serious in-joke */ |
431 | #define ev_embed_set(ev,loop_) do { (ev)->loop = (loop_); } while (0) |
434 | #define ev_embed_set(ev,loop_) do { (ev)->loop = (loop_); } while (0) |
432 | #define ev_fork_set(ev) /* nop, yes, this is a serious in-joke */ |
435 | #define ev_fork_set(ev) /* nop, yes, this is a serious in-joke */ |