summaryrefslogtreecommitdiff
path: root/lib/internal/queue.js
diff options
context:
space:
mode:
authorHubert Argasinski <argasinski.hubert@gmail.com>2017-06-10 23:14:13 -0400
committerGitHub <noreply@github.com>2017-06-10 23:14:13 -0400
commit0364ff3ac9727b69aefaab25999a491c8fa34fcd (patch)
treee6fe787c2d90e940ab64057ba0671ad1e05edb8a /lib/internal/queue.js
parentec9dab73153028e4abdd0216f55496b8bb6f4054 (diff)
downloadasync-0364ff3ac9727b69aefaab25999a491c8fa34fcd.tar.gz
ensure q.workersList() contains items being processed [fixes #1428] (#1429)
* ensure q.workersList() contains items being processed [fixes #1428] * remove newline * improve q.workersList() test
Diffstat (limited to 'lib/internal/queue.js')
-rw-r--r--lib/internal/queue.js5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/internal/queue.js b/lib/internal/queue.js
index e357447..5e8d4d7 100644
--- a/lib/internal/queue.js
+++ b/lib/internal/queue.js
@@ -55,9 +55,10 @@ export default function queue(worker, concurrency, payload) {
for (var i = 0, l = tasks.length; i < l; i++) {
var task = tasks[i];
+
var index = indexOf(workersList, task, 0);
if (index >= 0) {
- workersList.splice(index)
+ workersList.splice(index, 1);
}
task.callback.apply(task, arguments);
@@ -118,11 +119,11 @@ export default function queue(worker, concurrency, payload) {
for (var i = 0; i < l; i++) {
var node = q._tasks.shift();
tasks.push(node);
+ workersList.push(node);
data.push(node.data);
}
numRunning += 1;
- workersList.push(tasks[0]);
if (q._tasks.length === 0) {
q.empty();