File Explorer

/proc/thread-self/root/var/runtime/node_modules/@aws-sdk/node_modules/ws/lib

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

limiter.js1.0 KB · 56 lines
'use strict'; const kDone = Symbol('kDone');const kRun = Symbol('kRun'); /** * A very simple job queue with adjustable concurrency. Adapted from * https://github.com/STRML/async-limiter */class Limiter {  /**   * Creates a new `Limiter`.   *   * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed   *     to run concurrently   */  constructor(concurrency) {    this[kDone] = () => {      this.pending--;      this[kRun]();    };    this.concurrency = concurrency || Infinity;    this.jobs = [];    this.pending = 0;  }   /**   * Adds a job to the queue.   *   * @param {Function} job The job to run   * @public   */  add(job) {    this.jobs.push(job);    this[kRun]();  }   /**   * Removes a job from the queue and runs it if possible.   *   * @private   */  [kRun]() {    if (this.pending === this.concurrency) return;     if (this.jobs.length) {      const job = this.jobs.shift();       this.pending++;      job(this[kDone]);    }  }} module.exports = Limiter;