… | |
… | |
1523 | C<after> argument to C<ev_timer_set>, and only ever use the C<repeat> |
1523 | C<after> argument to C<ev_timer_set>, and only ever use the C<repeat> |
1524 | member and C<ev_timer_again>. |
1524 | member and C<ev_timer_again>. |
1525 | |
1525 | |
1526 | At start: |
1526 | At start: |
1527 | |
1527 | |
1528 | ev_timer_init (timer, callback); |
1528 | ev_init (timer, callback); |
1529 | timer->repeat = 60.; |
1529 | timer->repeat = 60.; |
1530 | ev_timer_again (loop, timer); |
1530 | ev_timer_again (loop, timer); |
1531 | |
1531 | |
1532 | Each time there is some activity: |
1532 | Each time there is some activity: |
1533 | |
1533 | |
… | |
… | |
1595 | |
1595 | |
1596 | To start the timer, simply initialise the watcher and set C<last_activity> |
1596 | To start the timer, simply initialise the watcher and set C<last_activity> |
1597 | to the current time (meaning we just have some activity :), then call the |
1597 | to the current time (meaning we just have some activity :), then call the |
1598 | callback, which will "do the right thing" and start the timer: |
1598 | callback, which will "do the right thing" and start the timer: |
1599 | |
1599 | |
1600 | ev_timer_init (timer, callback); |
1600 | ev_init (timer, callback); |
1601 | last_activity = ev_now (loop); |
1601 | last_activity = ev_now (loop); |
1602 | callback (loop, timer, EV_TIMEOUT); |
1602 | callback (loop, timer, EV_TIMEOUT); |
1603 | |
1603 | |
1604 | And when there is some activity, simply store the current time in |
1604 | And when there is some activity, simply store the current time in |
1605 | C<last_activity>, no libev calls at all: |
1605 | C<last_activity>, no libev calls at all: |
… | |
… | |
2471 | struct pollfd fds [nfd]; |
2471 | struct pollfd fds [nfd]; |
2472 | // actual code will need to loop here and realloc etc. |
2472 | // actual code will need to loop here and realloc etc. |
2473 | adns_beforepoll (ads, fds, &nfd, &timeout, timeval_from (ev_time ())); |
2473 | adns_beforepoll (ads, fds, &nfd, &timeout, timeval_from (ev_time ())); |
2474 | |
2474 | |
2475 | /* the callback is illegal, but won't be called as we stop during check */ |
2475 | /* the callback is illegal, but won't be called as we stop during check */ |
2476 | ev_timer_init (&tw, 0, timeout * 1e-3); |
2476 | ev_timer_init (&tw, 0, timeout * 1e-3, 0.); |
2477 | ev_timer_start (loop, &tw); |
2477 | ev_timer_start (loop, &tw); |
2478 | |
2478 | |
2479 | // create one ev_io per pollfd |
2479 | // create one ev_io per pollfd |
2480 | for (int i = 0; i < nfd; ++i) |
2480 | for (int i = 0; i < nfd; ++i) |
2481 | { |
2481 | { |