UNPKG

sabcom

Version:

A TypeScript/Node.js library for inter-thread communication using SharedArrayBuffer with atomic operations for raw buffer data transfer

34 lines (33 loc) 1.3 kB
export declare const SEMAPHORE = 0; export declare enum Semaphore { READY = 0, HANDSHAKE = 1, PAYLOAD = 2 } export declare enum Handshake { TOTAL_SIZE = 1, TOTAL_CHUNKS = 2 } export declare enum Header { CHUNK_INDEX = 1, CHUNK_OFFSET = 2, CHUNK_SIZE = 3 } export declare const HEADER_VALUES: number; export declare const HEADER_SIZE: number; export interface Options { timeout?: number; } export interface WaitRequest { target: Int32Array; index: number; value: number; timeout?: number; } export type WaitResponse = ReturnType<typeof Atomics.wait>; export declare function writeGenerator(data: Uint8Array, buffer: SharedArrayBuffer, { timeout }?: Options): Generator<WaitRequest, void, WaitResponse>; export declare function readGenerator(buffer: SharedArrayBuffer, { timeout }?: Options): Generator<WaitRequest, Uint8Array, WaitResponse>; export declare const writeSync: (data: Uint8Array, buffer: SharedArrayBuffer, options?: Options) => void; export declare const write: (data: Uint8Array, buffer: SharedArrayBuffer, options?: Options) => Promise<void>; export declare const readSync: (buffer: SharedArrayBuffer, options?: Options) => Uint8Array; export declare const read: (buffer: SharedArrayBuffer, options?: Options) => Promise<Uint8Array>;