From: Alan T. DeKok Date: Thu, 19 Dec 2019 18:49:00 +0000 (-0500) Subject: if we get a timeout in kevent(), there MUST be timer events X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0f0fabbce18f99414a1d0cd43965166f890ada12;p=thirdparty%2Ffreeradius-server.git if we get a timeout in kevent(), there MUST be timer events --- diff --git a/src/lib/util/event.c b/src/lib/util/event.c index 8c219228086..12e203b9cb9 100644 --- a/src/lib/util/event.c +++ b/src/lib/util/event.c @@ -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