- if (this.getLastWorkerSetElement().numberOfWorkerElements >= this.maxElementsPerWorker) {
- this.startWorker();
- // Start worker sequentially to optimize memory at startup
- this.workerStartDelay > 0 && await Utils.sleep(this.workerStartDelay);
+ if (
+ this.workerSet.size === 0 ||
+ this.getLastWorkerSetElement().numberOfWorkerElements >= this.workerOptions.elementsPerWorker
+ ) {
+ await this.startWorker();
+ }
+ this.getLastWorker().postMessage({
+ id: WorkerMessageEvents.startWorkerElement,
+ data: elementData,
+ });
+ ++this.getLastWorkerSetElement().numberOfWorkerElements;
+ // Start element sequentially to optimize memory at startup
+ if (this.workerOptions.elementStartDelay > 0) {
+ await sleep(this.workerOptions.elementStartDelay);