… | |
… | |
2393 | |
2393 | |
2394 | ev_periodic hourly_tick; |
2394 | ev_periodic hourly_tick; |
2395 | ev_periodic_init (&hourly_tick, clock_cb, |
2395 | ev_periodic_init (&hourly_tick, clock_cb, |
2396 | fmod (ev_now (loop), 3600.), 3600., 0); |
2396 | fmod (ev_now (loop), 3600.), 3600., 0); |
2397 | ev_periodic_start (loop, &hourly_tick); |
2397 | ev_periodic_start (loop, &hourly_tick); |
2398 | |
2398 | |
2399 | |
2399 | |
2400 | =head2 C<ev_signal> - signal me when a signal gets signalled! |
2400 | =head2 C<ev_signal> - signal me when a signal gets signalled! |
2401 | |
2401 | |
2402 | Signal watchers will trigger an event when the process receives a specific |
2402 | Signal watchers will trigger an event when the process receives a specific |
2403 | signal one or more times. Even though signals are very asynchronous, libev |
2403 | signal one or more times. Even though signals are very asynchronous, libev |
… | |
… | |
3213 | used). |
3213 | used). |
3214 | |
3214 | |
3215 | struct ev_loop *loop_hi = ev_default_init (0); |
3215 | struct ev_loop *loop_hi = ev_default_init (0); |
3216 | struct ev_loop *loop_lo = 0; |
3216 | struct ev_loop *loop_lo = 0; |
3217 | ev_embed embed; |
3217 | ev_embed embed; |
3218 | |
3218 | |
3219 | // see if there is a chance of getting one that works |
3219 | // see if there is a chance of getting one that works |
3220 | // (remember that a flags value of 0 means autodetection) |
3220 | // (remember that a flags value of 0 means autodetection) |
3221 | loop_lo = ev_embeddable_backends () & ev_recommended_backends () |
3221 | loop_lo = ev_embeddable_backends () & ev_recommended_backends () |
3222 | ? ev_loop_new (ev_embeddable_backends () & ev_recommended_backends ()) |
3222 | ? ev_loop_new (ev_embeddable_backends () & ev_recommended_backends ()) |
3223 | : 0; |
3223 | : 0; |
… | |
… | |
3237 | C<loop_socket>. (One might optionally use C<EVFLAG_NOENV>, too). |
3237 | C<loop_socket>. (One might optionally use C<EVFLAG_NOENV>, too). |
3238 | |
3238 | |
3239 | struct ev_loop *loop = ev_default_init (0); |
3239 | struct ev_loop *loop = ev_default_init (0); |
3240 | struct ev_loop *loop_socket = 0; |
3240 | struct ev_loop *loop_socket = 0; |
3241 | ev_embed embed; |
3241 | ev_embed embed; |
3242 | |
3242 | |
3243 | if (ev_supported_backends () & ~ev_recommended_backends () & EVBACKEND_KQUEUE) |
3243 | if (ev_supported_backends () & ~ev_recommended_backends () & EVBACKEND_KQUEUE) |
3244 | if ((loop_socket = ev_loop_new (EVBACKEND_KQUEUE)) |
3244 | if ((loop_socket = ev_loop_new (EVBACKEND_KQUEUE)) |
3245 | { |
3245 | { |
3246 | ev_embed_init (&embed, 0, loop_socket); |
3246 | ev_embed_init (&embed, 0, loop_socket); |
3247 | ev_embed_start (loop, &embed); |
3247 | ev_embed_start (loop, &embed); |
… | |
… | |
4097 | void operator() (ev::io &w, int revents) |
4097 | void operator() (ev::io &w, int revents) |
4098 | { |
4098 | { |
4099 | ... |
4099 | ... |
4100 | } |
4100 | } |
4101 | } |
4101 | } |
4102 | |
4102 | |
4103 | myfunctor f; |
4103 | myfunctor f; |
4104 | |
4104 | |
4105 | ev::io w; |
4105 | ev::io w; |
4106 | w.set (&f); |
4106 | w.set (&f); |
4107 | |
4107 | |