]> Piment Noir Git Repositories - poolifier.git/commitdiff
refactor: safer access to worker nodes array element
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 1 Jul 2025 14:22:30 +0000 (16:22 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 1 Jul 2025 14:22:30 +0000 (16:22 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
src/pools/selection-strategies/abstract-worker-choice-strategy.ts

index 69a30638750dbfee58ae9d372a680171cf88c709..acde2e3e51fb70c13e19923a3323b9fde8222047 100644 (file)
@@ -104,8 +104,8 @@ export abstract class AbstractWorkerChoiceStrategy<
    */
   protected getWorkerNodeTaskElu (workerNodeKey: number): number {
     return this.taskStatisticsRequirements.elu.median
-      ? (this.pool.workerNodes[workerNodeKey].usage.elu.active.median ?? 0)
-      : (this.pool.workerNodes[workerNodeKey].usage.elu.active.average ?? 0)
+      ? (this.pool.workerNodes[workerNodeKey]?.usage.elu.active.median ?? 0)
+      : (this.pool.workerNodes[workerNodeKey]?.usage.elu.active.average ?? 0)
   }
 
   /**
@@ -117,8 +117,8 @@ export abstract class AbstractWorkerChoiceStrategy<
    */
   protected getWorkerNodeTaskRunTime (workerNodeKey: number): number {
     return this.taskStatisticsRequirements.runTime.median
-      ? (this.pool.workerNodes[workerNodeKey].usage.runTime.median ?? 0)
-      : (this.pool.workerNodes[workerNodeKey].usage.runTime.average ?? 0)
+      ? (this.pool.workerNodes[workerNodeKey]?.usage.runTime.median ?? 0)
+      : (this.pool.workerNodes[workerNodeKey]?.usage.runTime.average ?? 0)
   }
 
   /**
@@ -130,8 +130,8 @@ export abstract class AbstractWorkerChoiceStrategy<
    */
   protected getWorkerNodeTaskWaitTime (workerNodeKey: number): number {
     return this.taskStatisticsRequirements.waitTime.median
-      ? (this.pool.workerNodes[workerNodeKey].usage.waitTime.median ?? 0)
-      : (this.pool.workerNodes[workerNodeKey].usage.waitTime.average ?? 0)
+      ? (this.pool.workerNodes[workerNodeKey]?.usage.waitTime.median ?? 0)
+      : (this.pool.workerNodes[workerNodeKey]?.usage.waitTime.average ?? 0)
   }
 
   /**
@@ -140,7 +140,7 @@ export abstract class AbstractWorkerChoiceStrategy<
    * @returns Whether the worker node is ready or not.
    */
   protected isWorkerNodeReady (workerNodeKey: number): boolean {
-    return this.pool.workerNodes[workerNodeKey]?.info?.ready ?? false
+    return this.pool.workerNodes[workerNodeKey]?.info.ready ?? false
   }
 
   protected resetWorkerNodeKeyProperties (): void {