From: Jérôme Benoit Date: Tue, 1 Jul 2025 14:22:30 +0000 (+0200) Subject: refactor: safer access to worker nodes array element X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=c18e0539ca4fc6fa754d29799e01028127358667;p=poolifier.git refactor: safer access to worker nodes array element Signed-off-by: Jérôme Benoit --- diff --git a/src/pools/selection-strategies/abstract-worker-choice-strategy.ts b/src/pools/selection-strategies/abstract-worker-choice-strategy.ts index 69a306387..acde2e3e5 100644 --- a/src/pools/selection-strategies/abstract-worker-choice-strategy.ts +++ b/src/pools/selection-strategies/abstract-worker-choice-strategy.ts @@ -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 {