diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-11-13 21:53:45 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-11-13 21:53:45 +0100 |
commit | 18c96ab6926658d6707f1f3be935078f1cb08411 (patch) | |
tree | 418195a292ce8811679d4c2b1cb7bb0316669d62 /node_modules/async/internal/queue.js | |
parent | 9657e01be14fa5baa4067da65aff94faf6c973e0 (diff) | |
download | wallet-core-18c96ab6926658d6707f1f3be935078f1cb08411.tar.xz |
node modules
Diffstat (limited to 'node_modules/async/internal/queue.js')
-rw-r--r-- | node_modules/async/internal/queue.js | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/node_modules/async/internal/queue.js b/node_modules/async/internal/queue.js deleted file mode 100644 index 6d53cc2e0..000000000 --- a/node_modules/async/internal/queue.js +++ /dev/null @@ -1,184 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = queue; - -var _baseIndexOf = require('lodash/_baseIndexOf'); - -var _baseIndexOf2 = _interopRequireDefault(_baseIndexOf); - -var _isArray = require('lodash/isArray'); - -var _isArray2 = _interopRequireDefault(_isArray); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _baseRest = require('lodash/_baseRest'); - -var _baseRest2 = _interopRequireDefault(_baseRest); - -var _onlyOnce = require('./onlyOnce'); - -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); - -var _setImmediate = require('./setImmediate'); - -var _setImmediate2 = _interopRequireDefault(_setImmediate); - -var _DoublyLinkedList = require('./DoublyLinkedList'); - -var _DoublyLinkedList2 = _interopRequireDefault(_DoublyLinkedList); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function queue(worker, concurrency, payload) { - if (concurrency == null) { - concurrency = 1; - } else if (concurrency === 0) { - throw new Error('Concurrency must not be zero'); - } - - function _insert(data, insertAtFront, callback) { - if (callback != null && typeof callback !== 'function') { - throw new Error('task callback must be a function'); - } - q.started = true; - if (!(0, _isArray2.default)(data)) { - data = [data]; - } - if (data.length === 0 && q.idle()) { - // call drain immediately if there are no tasks - return (0, _setImmediate2.default)(function () { - q.drain(); - }); - } - - for (var i = 0, l = data.length; i < l; i++) { - var item = { - data: data[i], - callback: callback || _noop2.default - }; - - if (insertAtFront) { - q._tasks.unshift(item); - } else { - q._tasks.push(item); - } - } - (0, _setImmediate2.default)(q.process); - } - - function _next(tasks) { - return (0, _baseRest2.default)(function (args) { - workers -= 1; - - for (var i = 0, l = tasks.length; i < l; i++) { - var task = tasks[i]; - var index = (0, _baseIndexOf2.default)(workersList, task, 0); - if (index >= 0) { - workersList.splice(index); - } - - task.callback.apply(task, args); - - if (args[0] != null) { - q.error(args[0], task.data); - } - } - - if (workers <= q.concurrency - q.buffer) { - q.unsaturated(); - } - - if (q.idle()) { - q.drain(); - } - q.process(); - }); - } - - var workers = 0; - var workersList = []; - var q = { - _tasks: new _DoublyLinkedList2.default(), - concurrency: concurrency, - payload: payload, - saturated: _noop2.default, - unsaturated: _noop2.default, - buffer: concurrency / 4, - empty: _noop2.default, - drain: _noop2.default, - error: _noop2.default, - started: false, - paused: false, - push: function (data, callback) { - _insert(data, false, callback); - }, - kill: function () { - q.drain = _noop2.default; - q._tasks.empty(); - }, - unshift: function (data, callback) { - _insert(data, true, callback); - }, - process: function () { - while (!q.paused && workers < q.concurrency && q._tasks.length) { - var tasks = [], - data = []; - var l = q._tasks.length; - if (q.payload) l = Math.min(l, q.payload); - for (var i = 0; i < l; i++) { - var node = q._tasks.shift(); - tasks.push(node); - data.push(node.data); - } - - if (q._tasks.length === 0) { - q.empty(); - } - workers += 1; - workersList.push(tasks[0]); - - if (workers === q.concurrency) { - q.saturated(); - } - - var cb = (0, _onlyOnce2.default)(_next(tasks)); - worker(data, cb); - } - }, - length: function () { - return q._tasks.length; - }, - running: function () { - return workers; - }, - workersList: function () { - return workersList; - }, - idle: function () { - return q._tasks.length + workers === 0; - }, - pause: function () { - q.paused = true; - }, - resume: function () { - if (q.paused === false) { - return; - } - q.paused = false; - var resumeCount = Math.min(q.concurrency, q._tasks.length); - // Need to call q.process once per concurrent - // worker to preserve full concurrency after pause - for (var w = 1; w <= resumeCount; w++) { - (0, _setImmediate2.default)(q.process); - } - } - }; - return q; -} -module.exports = exports['default'];
\ No newline at end of file |