astro-ghostcms/.pnpm-store/v3/files/4a/a9776ac2b600cc51fbe59597fa9...

23 lines
714 B
Plaintext

/// <reference types="node" resolution-mode="require"/>
import { Worker } from 'worker_threads';
interface Job<I> {
msg: I;
resolve: (result: any) => void;
reject: (reason: any) => void;
}
export default class WorkerPool<I, O> {
numWorkers: number;
jobQueue: TransformStream<Job<I>, Job<I>>;
workerQueue: TransformStream<Worker, Worker>;
done: Promise<void>;
constructor(numWorkers: number, workerFile: string);
_readLoop(): Promise<void>;
_nextWorker(): Promise<Worker>;
_terminateAll(): Promise<void>;
join(): Promise<void>;
dispatchJob(msg: I): Promise<O>;
private jobPromise;
static useThisThreadAsWorker<I, O>(cb: (msg: I) => O): void;
}
export {};