… | |
… | |
218 | int rstatus; /* rw, holds the exit status, use the macros from sys/wait.h */ |
218 | int rstatus; /* rw, holds the exit status, use the macros from sys/wait.h */ |
219 | } ev_child; |
219 | } ev_child; |
220 | |
220 | |
221 | #if EV_STAT_ENABLE |
221 | #if EV_STAT_ENABLE |
222 | /* st_nlink = 0 means missing file or other error */ |
222 | /* st_nlink = 0 means missing file or other error */ |
223 | #ifdef _WIN32 |
223 | # ifdef _WIN32 |
224 | typedef struct _stati64 ev_statdata; |
224 | typedef struct _stati64 ev_statdata; |
225 | #else |
225 | # else |
226 | typedef struct stat ev_statdata; |
226 | typedef struct stat ev_statdata; |
227 | #endif |
227 | # endif |
228 | |
228 | |
229 | /* invoked each time the stat data changes for a given path */ |
229 | /* invoked each time the stat data changes for a given path */ |
230 | /* revent EV_STAT */ |
230 | /* revent EV_STAT */ |
231 | typedef struct ev_stat |
231 | typedef struct ev_stat |
232 | { |
232 | { |
233 | EV_WATCHER (ev_stat) |
233 | EV_WATCHER_LIST (ev_stat) |
234 | |
234 | |
235 | ev_timer timer; /* private */ |
235 | ev_timer timer; /* private */ |
236 | ev_tstamp interval; /* ro */ |
236 | ev_tstamp interval; /* ro */ |
237 | const char *path; /* ro */ |
237 | const char *path; /* ro */ |
238 | ev_statdata prev; /* ro */ |
238 | ev_statdata prev; /* ro */ |
239 | ev_statdata attr; /* ro */ |
239 | ev_statdata attr; /* ro */ |
|
|
240 | |
|
|
241 | int wd; /* wd for inotify, fd for kqueue */ |
240 | } ev_stat; |
242 | } ev_stat; |
241 | #endif |
243 | #endif |
242 | |
244 | |
243 | /* invoked when the nothing else needs to be done, keeps the process from blocking */ |
245 | /* invoked when the nothing else needs to be done, keeps the process from blocking */ |
244 | /* revent EV_IDLE */ |
246 | /* revent EV_IDLE */ |
… | |
… | |
424 | #define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_); } while (0) |
426 | #define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_); } while (0) |
425 | #define ev_timer_set(ev,after_,repeat_) do { (ev)->at = (after_); (ev)->repeat = (repeat_); } while (0) |
427 | #define ev_timer_set(ev,after_,repeat_) do { (ev)->at = (after_); (ev)->repeat = (repeat_); } while (0) |
426 | #define ev_periodic_set(ev,at_,ival_,res_) do { (ev)->at = (at_); (ev)->interval = (ival_); (ev)->reschedule_cb= (res_); } while (0) |
428 | #define ev_periodic_set(ev,at_,ival_,res_) do { (ev)->at = (at_); (ev)->interval = (ival_); (ev)->reschedule_cb= (res_); } while (0) |
427 | #define ev_signal_set(ev,signum_) do { (ev)->signum = (signum_); } while (0) |
429 | #define ev_signal_set(ev,signum_) do { (ev)->signum = (signum_); } while (0) |
428 | #define ev_child_set(ev,pid_) do { (ev)->pid = (pid_); } while (0) |
430 | #define ev_child_set(ev,pid_) do { (ev)->pid = (pid_); } while (0) |
429 | #define ev_stat_set(ev,path_,interval_) do { (ev)->path = (path_); (ev)->interval = (interval_); } while (0) |
431 | #define ev_stat_set(ev,path_,interval_) do { (ev)->path = (path_); (ev)->interval = (interval_); (ev)->wd = -2; } while (0) |
430 | #define ev_idle_set(ev) /* nop, yes, this is a serious in-joke */ |
432 | #define ev_idle_set(ev) /* nop, yes, this is a serious in-joke */ |
431 | #define ev_prepare_set(ev) /* nop, yes, this is a serious in-joke */ |
433 | #define ev_prepare_set(ev) /* nop, yes, this is a serious in-joke */ |
432 | #define ev_check_set(ev) /* nop, yes, this is a serious in-joke */ |
434 | #define ev_check_set(ev) /* nop, yes, this is a serious in-joke */ |
433 | #define ev_embed_set(ev,loop_) do { (ev)->loop = (loop_); } while (0) |
435 | #define ev_embed_set(ev,loop_) do { (ev)->loop = (loop_); } while (0) |
434 | #define ev_fork_set(ev) /* nop, yes, this is a serious in-joke */ |
436 | #define ev_fork_set(ev) /* nop, yes, this is a serious in-joke */ |