mpsc-channel
Version:
Multi-producer, single-consumer FIFO queue communication primitives
19 lines (18 loc) • 506 B
TypeScript
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 {};