]> Piment Noir Git Repositories - e-mobility-charging-stations-simulator.git/commitdiff
perf: missed worket set event emission control
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 21 Aug 2025 20:46:31 +0000 (22:46 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 21 Aug 2025 20:46:31 +0000 (22:46 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
src/worker/WorkerSet.ts

index 1fcdc3538b0fd3558ab7dc0eafac0e6dfabe08f0..50db75590bc9294fcd0522c7c07e6ce116883778 100644 (file)
@@ -239,7 +239,11 @@ export class WorkerSet<D extends WorkerData, R extends WorkerData> extends Worke
       }
       worker.unref()
       // eslint-disable-next-line promise/no-promise-in-callback
-      worker.terminate().catch((error: unknown) => this.emitter?.emit(WorkerSetEvents.error, error))
+      worker.terminate().catch((error: unknown) => {
+        if (this.emitter != null && this.emitter.listenerCount(WorkerSetEvents.error) > 0) {
+          this.emitter.emit(WorkerSetEvents.error, error)
+        }
+      })
     })
     worker.on('online', this.workerOptions.poolOptions?.onlineHandler ?? EMPTY_FUNCTION)
     worker.on('exit', this.workerOptions.poolOptions?.exitHandler ?? EMPTY_FUNCTION)