From: Yann Ylavic Date: Thu, 22 Jul 2021 16:10:02 +0000 (+0000) Subject: mpm_event: avoid possible timer off by 250 ms. X-Git-Tag: 2.5.0-alpha2-ci-test-only~883 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2a7de1e2a37464d166c1c8c5c41d7c4e49181c8c;p=thirdparty%2Fapache%2Fhttpd.git mpm_event: avoid possible timer off by 250 ms. * server/mpm/event/event.c (listener_thread): EVENT_FUDGE_FACTOR is used to limit wakeups but still expiring timers should be compared with the real apr_time_now(). Similar to r1874277 for TIMEOUT_FUDGE_FACTOR. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1891727 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/mpm/event/event.c b/server/mpm/event/event.c index e77da8b2b98..24a90c818bf 100644 --- a/server/mpm/event/event.c +++ b/server/mpm/event/event.c @@ -1934,10 +1934,10 @@ static void * APR_THREAD_FUNC listener_thread(apr_thread_t * thd, void *dummy) * the maximum time to poll() below, if any. */ expiry = timers_next_expiry; - if (expiry && expiry < now + EVENT_FUDGE_FACTOR) { + if (expiry && expiry < now) { apr_thread_mutex_lock(g_timer_skiplist_mtx); while ((te = apr_skiplist_peek(timer_skiplist))) { - if (te->when > now + EVENT_FUDGE_FACTOR) { + if (te->when > now) { timers_next_expiry = te->when; timeout = te->when - now; break;