uloop: fix a regression in timeout handling
[project/libubox.git] / uloop.c
diff --git a/uloop.c b/uloop.c
index f503241..0c57753 100644 (file)
--- a/uloop.c
+++ b/uloop.c
@@ -548,9 +548,9 @@ int uloop_run_timeout(int timeout)
                uloop_gettime(&tv);
 
                next_time = uloop_get_next_timeout(&tv);
                uloop_gettime(&tv);
 
                next_time = uloop_get_next_timeout(&tv);
-               if (timeout > 0 && next_time < timeout)
-                       timeout = next_time;
-               uloop_run_events(timeout);
+               if (timeout > 0 && timeout < next_time)
+                       next_time = timeout;
+               uloop_run_events(next_time);
        }
 
        if (!--uloop_run_depth)
        }
 
        if (!--uloop_run_depth)