… | |
… | |
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 | /* memmove is used here to avoid strict aliasing violations, and hopefully is optimized out by any reasonable compiler */ |
744 | # 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)))) |
745 | #endif |
745 | #endif |
746 | |
746 | |
747 | /* stopping (enabling, adding) a watcher does nothing if it is already running */ |
747 | /* starting (enabling, adding) a watcher does nothing if it is already running */ |
748 | /* 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 */ |
749 | #if EV_PROTOTYPES |
749 | #if EV_PROTOTYPES |
750 | |
750 | |
751 | /* feeds an event into a watcher as if the event actually occurred */ |
751 | /* feeds an event into a watcher as if the event actually occurred */ |
752 | /* accepts any ev_watcher type */ |
752 | /* accepts any ev_watcher type */ |