@realsee/five
Version:
Realsee Renderer SDK
27 lines (26 loc) • 933 B
TypeScript
export type WorkerType<Input, Output> = {
Input: Input;
Output: Output;
};
export type WorkerCallback<T extends WorkerType<any, any>> = (input: T['Input']) => Promise<{
output: T['Output'];
transfer: Transferable[];
}>;
export declare function defineWorker<T extends WorkerType<any, any>>(callback: WorkerCallback<T>): void;
export type WorkerCreator = (workId: number) => Worker;
export declare class WorkerPool<T extends WorkerType<any, any>> {
private disposed;
private pool;
private queue;
private workers;
private workerResolvers;
private workerStatus;
private workerCreator;
constructor(workerCreator: WorkerCreator | null, pool: number);
setWorkerCreator(workerCreator: WorkerCreator): void;
private initWorker;
private getIdleWorker;
private onMessage;
postMessage(input: T['Input'], transfer?: Transferable[]): Promise<T['Output']>;
dispose(): void;
}