opnet
Version:
The perfect library for building Bitcoin-based applications.
37 lines (36 loc) • 1.19 kB
TypeScript
import { Logger } from '@btc-vision/logger';
import { ThreaderOptions, WorkerScript } from './interfaces/IThread.js';
export declare abstract class BaseThreader<TOp extends string, TData, TResult> extends Logger {
readonly logColor: string;
protected abstract readonly workerScript: WorkerScript;
private workers;
private available;
private pending;
private queue;
private idCounter;
private readonly poolSize;
private initialized;
private initializing;
private tasksProcessed;
private tasksFailed;
private lastStatsLog;
private readonly statsInterval;
private cleanupBound;
protected constructor(options?: ThreaderOptions);
get stats(): {
pending: number;
queued: number;
available: number;
total: number;
processed: number;
failed: number;
};
terminate(): Promise<void>;
drain(): Promise<void>;
protected runWithTransfer(op: TOp, data: TData, transferables: ArrayBuffer[]): Promise<TResult>;
protected run(op: TOp, data: TData): Promise<TResult>;
private bindCleanupHandlers;
private init;
private logStatsIfNeeded;
private processQueue;
}