summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSuguru Motegi <suguru.motegi@gmail.com>2018-11-06 21:44:31 -0800
committerRich Trott <rtrott@gmail.com>2018-12-01 08:20:58 -0800
commite9de43549843da9f4f081cce917945878967df7e (patch)
tree3da377dec8f63657b5e193257d0f25aa15d8f8df /lib
parenteb6741b15ebd93ffdd71e87cbc1350b9e94ef222 (diff)
downloadandroid-node-v8-e9de43549843da9f4f081cce917945878967df7e.tar.gz
android-node-v8-e9de43549843da9f4f081cce917945878967df7e.tar.bz2
android-node-v8-e9de43549843da9f4f081cce917945878967df7e.zip
timers: fix setTimeout expiration logic
Fix the timer logic to be the same as v10.30.0. Fixes: https://github.com/nodejs/node/issues/24203 PR-URL: https://github.com/nodejs/node/pull/24214 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/timers.js2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/timers.js b/lib/timers.js
index 575dcf25f6..1531cd1fb6 100644
--- a/lib/timers.js
+++ b/lib/timers.js
@@ -283,7 +283,7 @@ function listOnTimeout(list, now) {
// Check if this loop iteration is too early for the next timer.
// This happens if there are more timers scheduled for later in the list.
if (diff < msecs) {
- list.expiry = timer._idleStart + msecs;
+ list.expiry = Math.max(timer._idleStart + msecs, now + 1);
list.id = timerListId++;
queue.percolateDown(1);
debug('%d list wait because diff is %d', msecs, diff);