… | |
… | |
692 | ((ev_watcher *)(void *)(ev))->pending = 0; \ |
692 | ((ev_watcher *)(void *)(ev))->pending = 0; \ |
693 | ev_set_priority ((ev), 0); \ |
693 | ev_set_priority ((ev), 0); \ |
694 | ev_set_cb ((ev), cb_); \ |
694 | ev_set_cb ((ev), cb_); \ |
695 | } while (0) |
695 | } while (0) |
696 | |
696 | |
697 | #define ev_io_modify(ev,events_) do { (ev)->events = (ev)->events & EV__IOMASK | (events_); } while (0) |
697 | #define ev_io_modify(ev,events_) do { (ev)->events = (ev)->events & EV__IOFDSET | (events_); } while (0) |
698 | #define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0) |
698 | #define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0) |
699 | #define ev_timer_set(ev,after_,repeat_) do { ((ev_watcher_time *)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0) |
699 | #define ev_timer_set(ev,after_,repeat_) do { ((ev_watcher_time *)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0) |
700 | #define ev_periodic_set(ev,ofs_,ival_,rcb_) do { (ev)->offset = (ofs_); (ev)->interval = (ival_); (ev)->reschedule_cb = (rcb_); } while (0) |
700 | #define ev_periodic_set(ev,ofs_,ival_,rcb_) do { (ev)->offset = (ofs_); (ev)->interval = (ival_); (ev)->reschedule_cb = (rcb_); } while (0) |
701 | #define ev_signal_set(ev,signum_) do { (ev)->signum = (signum_); } while (0) |
701 | #define ev_signal_set(ev,signum_) do { (ev)->signum = (signum_); } while (0) |
702 | #define ev_child_set(ev,pid_,trace_) do { (ev)->pid = (pid_); (ev)->flags = !!(trace_); } while (0) |
702 | #define ev_child_set(ev,pid_,trace_) do { (ev)->pid = (pid_); (ev)->flags = !!(trace_); } while (0) |
… | |
… | |
738 | #endif |
738 | #endif |
739 | |
739 | |
740 | #define ev_periodic_at(ev) (+((ev_watcher_time *)(ev))->at) |
740 | #define ev_periodic_at(ev) (+((ev_watcher_time *)(ev))->at) |
741 | |
741 | |
742 | #ifndef ev_set_cb |
742 | #ifndef ev_set_cb |
|
|
743 | /* memmove is used here to avoid strict aliasing violations, and hopefully is optimized out by any reasonable compiler */ |
743 | # define ev_set_cb(ev,cb_) (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev)))) |
744 | # define ev_set_cb(ev,cb_) (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev)))) |
744 | #endif |
745 | #endif |
745 | |
746 | |
746 | /* stopping (enabling, adding) a watcher does nothing if it is already running */ |
747 | /* stopping (enabling, adding) a watcher does nothing if it is already running */ |
747 | /* stopping (disabling, deleting) a watcher does nothing unless it's already running */ |
748 | /* stopping (disabling, deleting) a watcher does nothing unless it's already running */ |