@sufalctl/rwlock
Version:
A lightweight asynchronous read-write lock that allows:
18 lines (17 loc) • 436 B
TypeScript
type UnlockFn = () => void;
type DoneFn = () => void;
declare class RwLock<T> {
private readers;
private writer;
private queue;
private value;
constructor(value: T);
read(): Promise<[T, UnlockFn]>;
write(): Promise<[T, DoneFn]>;
setWrite(): Promise<[T, (val: T) => void]>;
private releaseRead;
private releaseWrite;
private setReleaseWrite;
private processQueue;
}
export default RwLock;