… | |
… | |
274 | a fork, you can also make libev check for a fork in each iteration by |
274 | a fork, you can also make libev check for a fork in each iteration by |
275 | enabling this flag. |
275 | enabling this flag. |
276 | |
276 | |
277 | This works by calling C<getpid ()> on every iteration of the loop, |
277 | This works by calling C<getpid ()> on every iteration of the loop, |
278 | and thus this might slow down your event loop if you do a lot of loop |
278 | and thus this might slow down your event loop if you do a lot of loop |
279 | iterations and little real work, but is usually not noticable (on my |
279 | iterations and little real work, but is usually not noticeable (on my |
280 | Linux system for example, C<getpid> is actually a simple 5-insn sequence |
280 | Linux system for example, C<getpid> is actually a simple 5-insn sequence |
281 | without a syscall and thus I<very> fast, but my Linux system also has |
281 | without a syscall and thus I<very> fast, but my Linux system also has |
282 | C<pthread_atfork> which is even faster). |
282 | C<pthread_atfork> which is even faster). |
283 | |
283 | |
284 | The big advantage of this flag is that you can forget about fork (and |
284 | The big advantage of this flag is that you can forget about fork (and |
… | |
… | |
1457 | |
1457 | |
1458 | // create io watchers for each fd and a timer before blocking |
1458 | // create io watchers for each fd and a timer before blocking |
1459 | static void |
1459 | static void |
1460 | adns_prepare_cb (ev_loop *loop, ev_prepare *w, int revents) |
1460 | adns_prepare_cb (ev_loop *loop, ev_prepare *w, int revents) |
1461 | { |
1461 | { |
1462 | int timeout = 3600000;truct pollfd fds [nfd]; |
1462 | int timeout = 3600000; |
|
|
1463 | struct pollfd fds [nfd]; |
1463 | // actual code will need to loop here and realloc etc. |
1464 | // actual code will need to loop here and realloc etc. |
1464 | adns_beforepoll (ads, fds, &nfd, &timeout, timeval_from (ev_time ())); |
1465 | adns_beforepoll (ads, fds, &nfd, &timeout, timeval_from (ev_time ())); |
1465 | |
1466 | |
1466 | /* the callback is illegal, but won't be called as we stop during check */ |
1467 | /* the callback is illegal, but won't be called as we stop during check */ |
1467 | ev_timer_init (&tw, 0, timeout * 1e-3); |
1468 | ev_timer_init (&tw, 0, timeout * 1e-3); |