+// Partial Copyright Jerome Benoit. 2021. All Rights Reserved.
+
import { WorkerEvents, WorkerSetElement } from '../types/Worker';
import Utils from '../utils/Utils';
import { Worker } from 'worker_threads';
import WorkerAbstract from './WorkerAbstract';
+import { WorkerUtils } from './WorkerUtils';
export default class WorkerSet<T> extends WorkerAbstract {
public maxElementsPerWorker: number;
worker.on('message', () => { });
worker.on('error', () => { });
worker.on('exit', (code) => {
- if (code !== 0) {
- console.error(`Worker stopped with exit code ${code}`);
- }
+ WorkerUtils.defaultExitHandler(code);
this.workerSet.delete(this.getWorkerSetElementByWorker(worker));
});
this.workerSet.add({ worker, numberOfWorkerElements: 0 });
private getWorkerSetElementByWorker(worker: Worker): WorkerSetElement {
let workerSetElt: WorkerSetElement;
- this.workerSet.forEach((workerSetElement) => {
+ for (const workerSetElement of this.workerSet) {
if (workerSetElement.worker.threadId === worker.threadId) {
workerSetElt = workerSetElement;
+ break;
}
- });
+ }
return workerSetElt;
}
}