From 09eebfffb8a24175f7b920eb61f4a276c676ece9 Mon Sep 17 00:00:00 2001 From: fox Date: Wed, 16 Apr 2014 02:33:24 -0700 Subject: [PATCH 1/2] async.queue pause/resume concurrency problem --- lib/async.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/async.js b/lib/async.js index 20afb3bd7..5c0c93c68 100755 --- a/lib/async.js +++ b/lib/async.js @@ -806,12 +806,13 @@ pause: function () { if (q.paused === true) { return; } q.paused = true; - q.process(); }, resume: function () { if (q.paused === false) { return; } q.paused = false; - q.process(); + _each(q.tasks, function(task) { + async.setImmediate(q.process); + }); } }; return q; From 59884af51b18f9b64d05fb04e976b0fa132263a1 Mon Sep 17 00:00:00 2001 From: fox Date: Thu, 17 Apr 2014 01:57:05 -0700 Subject: [PATCH 2/2] async.queue pause/resume concurrency problem (cycle ottimization) --- lib/async.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/async.js b/lib/async.js index 5c0c93c68..a5ddeed51 100755 --- a/lib/async.js +++ b/lib/async.js @@ -810,9 +810,9 @@ resume: function () { if (q.paused === false) { return; } q.paused = false; - _each(q.tasks, function(task) { + for (var i = 0; i < q.tasks.length && i < q.concurrency; i++) { async.setImmediate(q.process); - }); + } } }; return q;