From: Alan T. DeKok Date: Sun, 9 Apr 2023 16:02:32 +0000 (-0400) Subject: rearrange so we wake up X-Git-Tag: release_3_2_3~73 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17bd3f2fd85355ee3dc50eefac8333fb8ba3011e;p=thirdparty%2Ffreeradius-server.git rearrange so we wake up --- diff --git a/src/lib/event.c b/src/lib/event.c index 467bc0a1a1..f2c564132b 100644 --- a/src/lib/event.c +++ b/src/lib/event.c @@ -722,6 +722,14 @@ int fr_event_loop(fr_event_list_t *el) if (el->status) el->status(wake); #ifndef HAVE_KQUEUE + pthread_mutex_lock(&el->mutex); + if (el->want_read || el->want_write) { + when.tv_sec = 0; + when.tv_usec = 0; + wake = &when; + } + pthread_mutex_unlock(&el->mutex); + read_fds = el->read_fds; write_fds = el->write_fds; rcode = select(el->max_fd + 1, &read_fds, &write_fds, NULL, wake); @@ -737,10 +745,6 @@ int fr_event_loop(fr_event_list_t *el) */ pthread_mutex_lock(&el->mutex); if (el->want_read || el->want_write) { - when.tv_sec = 0; - when.tv_usec = 0; - wake = &when; - for (i = 0; i <= el->max_fd; i++) { if (FD_ISSET(i, &el->want_read_fds)) FD_SET(i, &read_fds); if (FD_ISSET(i, &el->want_write_fds)) FD_SET(i, &write_fds);