… | |
… | |
1318 | |
1318 | |
1319 | =item callback ev_cb (ev_TYPE *watcher) |
1319 | =item callback ev_cb (ev_TYPE *watcher) |
1320 | |
1320 | |
1321 | Returns the callback currently set on the watcher. |
1321 | Returns the callback currently set on the watcher. |
1322 | |
1322 | |
1323 | =item ev_cb_set (ev_TYPE *watcher, callback) |
1323 | =item ev_set_cb (ev_TYPE *watcher, callback) |
1324 | |
1324 | |
1325 | Change the callback. You can change the callback at virtually any time |
1325 | Change the callback. You can change the callback at virtually any time |
1326 | (modulo threads). |
1326 | (modulo threads). |
1327 | |
1327 | |
1328 | =item ev_set_priority (ev_TYPE *watcher, int priority) |
1328 | =item ev_set_priority (ev_TYPE *watcher, int priority) |
… | |
… | |
2858 | |
2858 | |
2859 | This mode of operation can be useful together with an C<ev_check> watcher, |
2859 | This mode of operation can be useful together with an C<ev_check> watcher, |
2860 | to do something on each event loop iteration - for example to balance load |
2860 | to do something on each event loop iteration - for example to balance load |
2861 | between different connections. |
2861 | between different connections. |
2862 | |
2862 | |
2863 | See L<Abusing an C<ev_check> watcher for its side-effect> for a longer |
2863 | See L<< Abusing an C<ev_check> watcher for its side-effect >> for a longer |
2864 | example. |
2864 | example. |
2865 | |
2865 | |
2866 | =head3 Watcher-Specific Functions and Data Members |
2866 | =head3 Watcher-Specific Functions and Data Members |
2867 | |
2867 | |
2868 | =over 4 |
2868 | =over 4 |
… | |
… | |
3875 | called): |
3875 | called): |
3876 | |
3876 | |
3877 | void |
3877 | void |
3878 | wait_for_event (ev_watcher *w) |
3878 | wait_for_event (ev_watcher *w) |
3879 | { |
3879 | { |
3880 | ev_cb_set (w) = current_coro; |
3880 | ev_set_cb (w, current_coro); |
3881 | switch_to (libev_coro); |
3881 | switch_to (libev_coro); |
3882 | } |
3882 | } |
3883 | |
3883 | |
3884 | That basically suspends the coroutine inside C<wait_for_event> and |
3884 | That basically suspends the coroutine inside C<wait_for_event> and |
3885 | continues the libev coroutine, which, when appropriate, switches back to |
3885 | continues the libev coroutine, which, when appropriate, switches back to |