UNPKG

@apiratorjs/locking

Version:

A lightweight library providing both local and distributed locking primitives (mutexes, semaphores, and read-write locks) for managing concurrency in Node.js.

21 lines 853 B
import { AcquireParams, IReleaser, ISemaphore, SemaphoreToken } from "./types"; export declare class Semaphore implements ISemaphore { readonly maxCount: number; private _freeCount; private _queue; private _waitingForAnyUnlockListeners; private _waitingForFullyUnlockListeners; constructor(maxCount: number); waitForFullyUnlock(): Promise<void>; waitForAnyUnlock(): Promise<void>; runExclusive<T>(fn: () => Promise<T> | T): Promise<T>; runExclusive<T>(params: AcquireParams, fn: () => Promise<T> | T): Promise<T>; freeCount(): Promise<number>; acquire(params?: { timeoutMs?: number; }, acquireToken?: string): Promise<IReleaser<SemaphoreToken>>; cancelAll(errMessage?: string): Promise<void>; isLocked(): Promise<boolean>; private release; } //# sourceMappingURL=semaphore.d.ts.map