]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
if we get a timeout in kevent(), there MUST be timer events
authorAlan T. DeKok <aland@freeradius.org>
Thu, 19 Dec 2019 18:49:00 +0000 (13:49 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 19 Dec 2019 18:49:10 +0000 (13:49 -0500)
src/lib/util/event.c

index 8c2192280860d4ffb93f60687c901df00113b088..12e203b9cb915c119cf23f1e74effe82e458ea97 100644 (file)
@@ -1526,7 +1526,16 @@ int fr_event_corral(fr_event_list_t *el, fr_time_t now, bool wait)
 
        el->num_fd_events = num_fd_events;
 
-       return num_fd_events + timer_event_ready;
+       if (timer_event_ready || num_fd_events) {
+               return num_fd_events + timer_event_ready;
+       }
+
+       /*
+        *      Else there were no timer events ready BEFORE the call
+        *      to kevent(), but there MUST be timer events ready now.
+        *      Because otherwise kevent() wouldn't have returned.
+        */
+       return 1;
 }
 
 /** Service any outstanding timer or file descriptor events