From 4f4cf9874d863f69782383e6c34d12eaf43fd2bc Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Tue, 12 Feb 2019 18:30:55 -0800 Subject: [PATCH] Change the way timer queue timer is deleted As discussed in bug #77580, passing INVALID_HANDLE_VALUE for the completion event improves compatibility with Wine/ReactOS. The timer callback itself is supposed to complete fast enough, no behavior change is to expect. --- Zend/zend_execute_API.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index f5d08f1f0de..048e0af967a 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -1238,7 +1238,7 @@ static void zend_set_timeout_ex(zend_long seconds, int reset_signals) /* {{{ */ timer, so we could end up with just an ignored timeout. Instead delete and recreate. */ if (NULL != tq_timer) { - if (!DeleteTimerQueueTimer(NULL, tq_timer, NULL)) { + if (!DeleteTimerQueueTimer(NULL, tq_timer, INVALID_HANDLE_VALUE)) { tq_timer = NULL; zend_error_noreturn(E_ERROR, "Could not delete queued timer"); return; @@ -1312,7 +1312,7 @@ void zend_unset_timeout(void) /* {{{ */ { #ifdef ZEND_WIN32 if (NULL != tq_timer) { - if (!DeleteTimerQueueTimer(NULL, tq_timer, NULL)) { + if (!DeleteTimerQueueTimer(NULL, tq_timer, INVALID_HANDLE_VALUE)) { EG(timed_out) = 0; tq_timer = NULL; zend_error_noreturn(E_ERROR, "Could not delete queued timer");