Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@supertenant/shared-metrics / src / util / CountDownLatch.js
Size: Mime:
// (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;