UNPKG

dahlia-concurrency

Version:

High-level concurrency primitives and patterns for Node.js using worker_threads (queues, semaphore, mutex, worker pool, scheduler, and more)

32 lines (23 loc) 645 B
import { Mutex } from "./mutex"; export class RwLock { private reader: number; private writer: boolean; private readMutex: Mutex; private writeMutex: Mutex; private politics: boolean; private waitingWriters?: number; private readerGate?: Mutex; constructor( readMutexBuffer: SharedArrayBuffer, writeMutexBuffer: SharedArrayBuffer, politics?: boolean, // true = fair, false = greedy ); readLock(): void; writeLock(): void; readUnlock(): void; writeUnlock(): void; private readLockGreedy(): void; private readLockFair(): void; private writeLockGreedy(): void; private writeLockFair(): void; }