decrement()

in packages/sqrl/src/jslib/Semaphore.ts [87:103]


  decrement() {
    // If something is waiting for this, just pass the
    if (
      this._resolvers.length &&
      (this.max === null || this.count <= this.max)
    ) {
      const resolver = this._resolvers.shift();
      resolver();
      return;
    }
    this.count--;
    this.emit("change", this.count);
    if (this.count === 0 && this._zeroPromiseResolver) {
      this._zeroPromiseResolver.resolve();
      this._zeroPromiseResolver = null;
    }
  }