docs: update UI protocol requests collections
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerSet.ts
index ea5d654cdd001f599e6af1b670e61e494852430c..f10ca9c8ce0f4fbfbd58a10faf0f44ab6073b20a 100644 (file)
@@ -1,4 +1,4 @@
-// Partial Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
+// Partial Copyright Jerome Benoit. 2021-2024. All Rights Reserved.
 
 import { EventEmitterAsyncResource } from 'node:events'
 import { SHARE_ENV, Worker } from 'node:worker_threads'
@@ -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,
@@ -86,18 +87,18 @@ export class WorkerSet extends WorkerAbstract<WorkerData> {
   public async stop (): Promise<void> {
     for (const workerSetElement of this.workerSet) {
       const worker = workerSetElement.worker
-      const waitWorkerExit = new Promise<void>((resolve) => {
+      const waitWorkerExit = new Promise<void>(resolve => {
         worker.once('exit', () => {
           resolve()
         })
       })
       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.emitter?.emitDestroy()
+    this.emitter?.removeAllListeners()
+    this.started = false
   }
 
   /** @inheritDoc */
@@ -107,7 +108,7 @@ export class WorkerSet extends WorkerAbstract<WorkerData> {
     }
     const workerSetElement = await this.getWorkerSetElement()
     workerSetElement.worker.postMessage({
-      event: WorkerMessageEvents.startWorkerElement,
+      event: WorkerMessageEvents.addWorkerElement,
       data: elementData
     })
     ++workerSetElement.numberOfWorkerElements
@@ -130,14 +131,14 @@ export class WorkerSet extends WorkerAbstract<WorkerData> {
     })
     worker.on('message', this.workerOptions.poolOptions?.messageHandler ?? EMPTY_FUNCTION)
     worker.on('message', (message: WorkerMessage<WorkerData>) => {
-      if (message.event === WorkerMessageEvents.startedWorkerElement) {
-        this.emitter?.emit(WorkerSetEvents.elementStarted, this.info)
-      } else if (message.event === WorkerMessageEvents.startWorkerElementError) {
+      if (message.event === WorkerMessageEvents.addedWorkerElement) {
+        this.emitter?.emit(WorkerSetEvents.elementAdded, this.info)
+      } else if (message.event === WorkerMessageEvents.workerElementError) {
         this.emitter?.emit(WorkerSetEvents.elementError, message.data)
       }
     })
     worker.on('error', this.workerOptions.poolOptions?.errorHandler ?? EMPTY_FUNCTION)
-    worker.on('error', (error) => {
+    worker.on('error', error => {
       this.emitter?.emit(WorkerSetEvents.error, error)
       if (
         this.workerOptions.poolOptions?.restartWorkerOnError === true &&