fix: fix fair share algorithm implementation
[poolifier.git] / src / pools / selection-strategies / abstract-worker-choice-strategy.ts
index 9aabdfd29d3a512df229b7b28bcfe631eaae2804..e2dd626de76106991b11d1567d70c9e6f3d21ab7 100644 (file)
@@ -66,7 +66,7 @@ export abstract class AbstractWorkerChoiceStrategy<
   public abstract reset (): boolean
 
   /** @inheritDoc */
-  public abstract update (): boolean
+  public abstract update (workerNodeKey: number): boolean
 
   /** @inheritDoc */
   public abstract choose (): number
@@ -106,7 +106,7 @@ export abstract class AbstractWorkerChoiceStrategy<
    */
   private findFirstFreeWorkerNodeKey (): number {
     return this.pool.workerNodes.findIndex(workerNode => {
-      return workerNode.tasksUsage?.running === 0
+      return workerNode.tasksUsage.running === 0
     })
   }
 
@@ -122,10 +122,10 @@ export abstract class AbstractWorkerChoiceStrategy<
   private findLastFreeWorkerNodeKey (): number {
     // It requires node >= 18.0.0:
     // return this.workerNodes.findLastIndex(workerNode => {
-    //   return workerNode.tasksUsage?.running === 0
+    //   return workerNode.tasksUsage.running === 0
     // })
     for (let i = this.pool.workerNodes.length - 1; i >= 0; i--) {
-      if (this.pool.workerNodes[i].tasksUsage?.running === 0) {
+      if (this.pool.workerNodes[i].tasksUsage.running === 0) {
         return i
       }
     }