dahlia-concurrency
Version:
High-level concurrency primitives and patterns for Node.js using worker_threads (queues, semaphore, mutex, worker pool, scheduler, and more)
33 lines (20 loc) • 585 B
TypeScript
/// <reference lib="es2017" />
import { RwLock } from "../primitives/rw-lock";
export type Strategy = "max" | "min";
declare class ListNode<T> {
element: T;
next: ListNode<T> | null;
constructor(element: T);
}
export class ConcurrentPriorityQueue<T> {
readonly readerBuffer: SharedArrayBuffer;
readonly writerBuffer: SharedArrayBuffer;
readonly rwLock: RwLock;
readonly strategy: Strategy;
constructor(strategy?: Strategy);
enqueue(item: T, priority: number): void;
dequeue(): T | null;
peek(): T | null;
isEmpty(): boolean;
get size(): number;
}