@apiratorjs/locking
Version:
A lightweight library providing both local and distributed locking primitives (mutexes and semaphores) for managing concurrency in Node.js.
17 lines • 673 B
TypeScript
import { AcquireToken, AcquireParams, IReleaser, ISemaphore } from "./types";
export declare class Semaphore implements ISemaphore {
readonly maxCount: number;
private _freeCount;
private _queue;
constructor(maxCount: number);
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?: AcquireToken): Promise<IReleaser>;
cancelAll(errMessage?: string): Promise<void>;
isLocked(): Promise<boolean>;
private release;
}
//# sourceMappingURL=semaphore.d.ts.map