Repository URL to install this package:
|
Version:
0.7.0 ▾
|
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";const EventEmitter=require("events"),assert=require("assert");class CountDownLatch extends EventEmitter{constructor(counter=1){super(),assert(0<=counter),this.counter=counter,this.doneEmitted=!1}countUp(increment=1){this.counter+=increment}countDown(decrement=1){this.counter>=decrement&&(this.counter-=decrement,0!==this.counter||this.doneEmitted||(this.emit("done"),this.doneEmitted=!0))}}module.exports=CountDownLatch;