async-rwlock
Version:
Promise-based asynchronous readers-writers lock
22 lines (21 loc) • 512 B
TypeScript
export declare enum State {
Idle = 0,
Reading = 1,
Writing = 2
}
export declare const ErrNotLocked: Error;
export declare const ErrTimeout: Error;
export declare class RWLock {
private pendingReaders;
private pendingWriters;
private numReaders;
private state;
constructor();
getState(): State;
readLock(timeout?: number): Promise<void>;
writeLock(timeout?: number): Promise<void>;
unlock(): void;
private pend;
private allowWrite;
private allowRead;
}