diff options
Diffstat (limited to 'node_modules/webpack/lib/util/Semaphore.js')
| -rw-r--r-- | node_modules/webpack/lib/util/Semaphore.js | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/node_modules/webpack/lib/util/Semaphore.js b/node_modules/webpack/lib/util/Semaphore.js deleted file mode 100644 index 68cd8898..00000000 --- a/node_modules/webpack/lib/util/Semaphore.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ - -"use strict"; - -class Semaphore { - /** - * Creates an instance of Semaphore. - * - * @param {number} available the amount available number of "tasks" - * in the Semaphore - */ - constructor(available) { - this.available = available; - /** @type {(function(): void)[]} */ - this.waiters = []; - /** @private */ - this._continue = this._continue.bind(this); - } - - /** - * @param {function(): void} callback function block to capture and run - * @returns {void} - */ - acquire(callback) { - if (this.available > 0) { - this.available--; - callback(); - } else { - this.waiters.push(callback); - } - } - - release() { - this.available++; - if (this.waiters.length > 0) { - process.nextTick(this._continue); - } - } - - _continue() { - if (this.available > 0) { - if (this.waiters.length > 0) { - this.available--; - const callback = /** @type {(function(): void)} */ (this.waiters.pop()); - callback(); - } - } - } -} - -module.exports = Semaphore; |
