From 327ed17b1d66f89a2165d626775698edbc2c0e9d Mon Sep 17 00:00:00 2001 From: Holden Rohrer Date: Thu, 16 Jul 2020 17:13:47 -0400 Subject: added nword protector using an add'l id func to Queue This should be added to sched.Queue so (even if it requires a somewhat convoluted workflow), any write may be tracked. --- tools/queue.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'tools') diff --git a/tools/queue.js b/tools/queue.js index d8853e4..f45ec80 100644 --- a/tools/queue.js +++ b/tools/queue.js @@ -3,15 +3,18 @@ module.exports = function(delayms, maxExport, call){ let queue = []; - let open = true; // The meaning of this variable is complicated, so watch closely + let id = 0; + let open = true; // Has call() run in the past delayms ms? let getObjs = (maxExport == 1) ? // Should call be given one object or an array? () => queue.shift() : () => queue.splice(0, maxExport); this.enqueue = function(arr){ + id += arr.length; for (item of arr) queue.push(item); if (open) dequeue(); + return id; } disabled = true; // Used to disable pushes when non-sensical like if a socket is down @@ -31,7 +34,7 @@ module.exports = function(delayms, maxExport, call){ open = true; else { open = false; - call(getObjs()); + call(getObjs(), id-queue.length); setTimeout(dequeue, delayms); } } -- cgit