fix: ensure charging profiles not related to the current transaction are
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerSet.ts
index b09ea711df718bbcd508dfba52dd99112e90b285..1774c24a4f17585e8ce1c6dd4bbcef1c109a5fee 100644 (file)
@@ -130,7 +130,11 @@ export class WorkerSet<D extends WorkerData, R extends WorkerData> extends Worke
         data: elementData
       } satisfies WorkerMessage<D>
       workerSetElement.worker.postMessage(message)
-      this.promiseResponseMap.set(message.uuid, { resolve, reject, workerSetElement })
+      this.promiseResponseMap.set(message.uuid, {
+        resolve,
+        reject,
+        workerSetElement
+      })
     })
     const response = await sendMessageToWorker
     // Add element sequentially to optimize memory at startup
@@ -182,7 +186,7 @@ export class WorkerSet<D extends WorkerData, R extends WorkerData> extends Worke
       }
     })
     worker.on('error', this.workerOptions.poolOptions?.errorHandler ?? EMPTY_FUNCTION)
-    worker.on('error', error => {
+    worker.once('error', error => {
       this.emitter?.emit(WorkerSetEvents.error, error)
       if (
         this.workerOptions.poolOptions?.restartWorkerOnError === true &&
@@ -199,7 +203,10 @@ export class WorkerSet<D extends WorkerData, R extends WorkerData> extends Worke
     worker.once('exit', () => {
       this.removeWorkerSetElement(this.getWorkerSetElementByWorker(worker))
     })
-    const workerSetElement: WorkerSetElement = { worker, numberOfWorkerElements: 0 }
+    const workerSetElement: WorkerSetElement = {
+      worker,
+      numberOfWorkerElements: 0
+    }
     this.workerSet.add(workerSetElement)
     this.workerStartup = false
     return workerSetElement