summaryrefslogtreecommitdiff
path: root/lib/priorityQueue.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/priorityQueue.js')
-rw-r--r--lib/priorityQueue.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/priorityQueue.js b/lib/priorityQueue.js
index 294e409..83d7429 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