UNPKG

mpsc-channel

Version:

Multi-producer, single-consumer FIFO queue communication primitives

19 lines (18 loc) 506 B
type Self<S> = (self: S) => void; declare class Channel<T> { values: Array<T>; receiver: (value: T) => void; constructor(impl: Self<Channel<T>>); } declare class Receiver<T> { channel: Channel<T>; constructor(impl: Self<Receiver<T>>); recv(receiver: (value: T) => void): T | undefined; } declare class Sender<T> { channel: Channel<T>; constructor(impl: Self<Sender<T>>); send(value: T): void; } export declare function channel<T>(): [Sender<T>, Receiver<T>]; export {};