uloop: fix uloop_run_timeout
Avoid running infinite poll loop, fix timeout value Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
5893cf78da
commit
362951a2d9
1 changed files with 4 additions and 5 deletions
7
uloop.c
7
uloop.c
|
@ -557,8 +557,7 @@ int uloop_run_timeout(int timeout)
|
||||||
|
|
||||||
uloop_status = 0;
|
uloop_status = 0;
|
||||||
uloop_cancelled = false;
|
uloop_cancelled = false;
|
||||||
while (!uloop_cancelled)
|
do {
|
||||||
{
|
|
||||||
uloop_gettime(&tv);
|
uloop_gettime(&tv);
|
||||||
uloop_process_timeouts(&tv);
|
uloop_process_timeouts(&tv);
|
||||||
|
|
||||||
|
@ -571,10 +570,10 @@ int uloop_run_timeout(int timeout)
|
||||||
uloop_gettime(&tv);
|
uloop_gettime(&tv);
|
||||||
|
|
||||||
next_time = uloop_get_next_timeout(&tv);
|
next_time = uloop_get_next_timeout(&tv);
|
||||||
if (timeout >= 0 && timeout < next_time)
|
if (timeout >= 0 && (next_time < 0 || timeout < next_time))
|
||||||
next_time = timeout;
|
next_time = timeout;
|
||||||
uloop_run_events(next_time);
|
uloop_run_events(next_time);
|
||||||
}
|
} while (!uloop_cancelled && timeout < 0);
|
||||||
|
|
||||||
--uloop_run_depth;
|
--uloop_run_depth;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue