import { Worker } from 'worker_threads';
import WorkerAbstract from './WorkerAbstract';
import { WorkerData } from '../types/Worker';
+import { WorkerUtils } from './WorkerUtils';
export default class WorkerStaticPool<T> extends WorkerAbstract {
private pool: StaticPool;
return this.pool.workers.length;
}
- get maxElementsPerWorker(): number {
+ get maxElementsPerWorker(): number | null {
return null;
}
/**
*
- * @param elementData
+ * @param {T} elementData
* @returns {Promise<void>}
* @public
*/
public static getInstance(numberOfThreads: number, workerScript: string, opts?: PoolOptions<Worker>): StaticPool {
if (!StaticPool.instance) {
- opts.exitHandler = opts.exitHandler ?? ((code) => {
- if (code !== 0) {
- console.error(`Worker stopped with exit code ${code}`);
- }
- });
+ opts.exitHandler = opts?.exitHandler ?? WorkerUtils.defaultExitHandler;
StaticPool.instance = new StaticPool(numberOfThreads, workerScript, opts);
}
return StaticPool.instance;