if (timeout->msecs == 0) {
/* if we came here from io_loop_handle_timeouts(),
next_run must be larger than tv_now or we could go to
- infinite loop */
- timeout->next_run.tv_usec += 1000;
+ infinite loop. +1000 to get 1 ms further, another +1000 to
+ account for timeout_update_next()'s truncation. */
+ timeout->next_run.tv_usec += 2000;
if (timeout->next_run.tv_usec >= 1000000) {
timeout->next_run.tv_sec++;
timeout->next_run.tv_usec -= 1000000;