uloop: Fix incorrect timeout

uloop timeouts are calculated based on a time value that was fetched
before any callbacks were executed. Hence, the next timeout is off by
the time the callback execution took which can lead to strange side
effects.

Fix this by calculating the next timeout based on a fresh time value.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
This commit is contained in:
Helmut Schaa 2013-07-24 14:51:55 +02:00 committed by Felix Fietkau
parent 11e8afea0f
commit 510e4956e5

View file

@ -632,6 +632,7 @@ void uloop_run(void)
if (do_sigchld) if (do_sigchld)
uloop_handle_processes(); uloop_handle_processes();
uloop_gettime(&tv);
uloop_run_events(uloop_get_next_timeout(&tv)); uloop_run_events(uloop_get_next_timeout(&tv));
} }
} }