From 81ed5664d474fd4a113cced50b878a22005bfbb9 Mon Sep 17 00:00:00 2001 From: Paul Karimov Date: Mon, 12 Oct 2020 21:21:31 -0700 Subject: [PATCH] priorityQueue: Prevent same tick setImmediate --- 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