fix(ci): fix web ui build
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerSet.ts
index f1ab1cf5482efaadd25398aa7dfe0ae521d68912..4a43e27b0601c44d3035c77411640cefd2fe798a 100644 (file)
@@ -52,6 +52,7 @@ export class WorkerSet extends WorkerAbstract<WorkerData> {
       version: workerSetVersion,
       type: 'set',
       worker: 'thread',
+      started: this.started,
       size: this.size,
       elementsExecuting: [...this.workerSet].reduce(
         (accumulator, workerSetElement) => accumulator + workerSetElement.numberOfWorkerElements,
@@ -91,13 +92,14 @@ export class WorkerSet extends WorkerAbstract<WorkerData> {
           resolve()
         })
       })
+      worker.unref()
       await worker.terminate()
       await waitWorkerExit
-      this.emitter?.emit(WorkerSetEvents.stopped, this.info)
-      this.emitter?.emitDestroy()
-      this.emitter?.removeAllListeners()
-      this.started = false
     }
+    this.emitter?.emit(WorkerSetEvents.stopped, this.info)
+    this.started = false
+    this.emitter?.emitDestroy()
+    this.emitter?.removeAllListeners()
   }
 
   /** @inheritDoc */
@@ -146,6 +148,8 @@ export class WorkerSet extends WorkerAbstract<WorkerData> {
       ) {
         this.addWorkerSetElement()
       }
+      worker.unref()
+      worker.terminate().catch(error => this.emitter?.emit(WorkerSetEvents.error, error))
     })
     worker.on('online', this.workerOptions.poolOptions?.onlineHandler ?? EMPTY_FUNCTION)
     worker.on('exit', this.workerOptions.poolOptions?.exitHandler ?? EMPTY_FUNCTION)