From 137d5928c475f1dfbb292ce70bc7a638d90d4ab8 Mon Sep 17 00:00:00 2001 From: Carlo Revelli Date: Fri, 3 Jul 2026 15:26:03 +0300 Subject: [PATCH] fix: run idle socket validation off setImmediate instead of setTimeout --- lib/dispatcher/client-h1.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/dispatcher/client-h1.js b/lib/dispatcher/client-h1.js index 6d89dd09b5e..5ab9e6d699c 100644 --- a/lib/dispatcher/client-h1.js +++ b/lib/dispatcher/client-h1.js @@ -1050,7 +1050,7 @@ function onSocketClose () { function clearIdleSocketValidation (socket) { if (socket[kIdleSocketValidationTimeout]) { - clearTimeout(socket[kIdleSocketValidationTimeout]) + clearImmediate(socket[kIdleSocketValidationTimeout]) socket[kIdleSocketValidationTimeout] = null } @@ -1059,14 +1059,14 @@ function clearIdleSocketValidation (socket) { function scheduleIdleSocketValidation (client, socket) { socket[kIdleSocketValidation] = 1 - socket[kIdleSocketValidationTimeout] = setTimeout(() => { + socket[kIdleSocketValidationTimeout] = setImmediate(() => { socket[kIdleSocketValidationTimeout] = null socket[kIdleSocketValidation] = 2 if (client[kSocket] === socket && !socket.destroyed) { client[kResume]() } - }, 0) + }) socket[kIdleSocketValidationTimeout].unref?.() }