From b0bc57154da84ca6472292ecd9363240b7b6b322 Mon Sep 17 00:00:00 2001 From: pkarimov <72779542+pkarimov@users.noreply.github.com> Date: Sat, 17 Oct 2020 11:58:20 -0700 Subject: [PATCH] priorityQueue: Prevent same tick setImmediate (#1727) Co-authored-by: Paul Karimov --- lib/priorityQueue.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/priorityQueue.js b/lib/priorityQueue.js index 294e409f6..83d7429a7 100644 --- a/lib/priorityQueue.js +++ b/lib/priorityQueue.js @@ -28,6 +28,7 @@ import Heap from './internal/Heap'; export default function(worker, concurrency) { // Start with a normal queue var q = queue(worker, concurrency); + var processingScheduled = false; q._tasks = new Heap(); @@ -55,7 +56,13 @@ export default function(worker, concurrency) { q._tasks.push(item); } - setImmediate(q.process); + if (!processingScheduled) { + processingScheduled = true; + setImmediate(() => { + processingScheduled = false; + q.process(); + }); + } }; // Remove unshift function