chore: add changelog entry
[poolifier.git] / src / pools / selection-strategies / less-recently-used-worker-choice-strategy.ts
index 03c6524d004846ff925ffaf6f0c498ed75cfb9e4..e62d9cdf83bd9a5ae472bc08296dfbe18b96e806 100644 (file)
@@ -1,19 +1,24 @@
-import type { AbstractPoolWorker } from '../abstract-pool-worker'
+import type { IPoolWorker } from '../pool-worker'
 import { AbstractWorkerChoiceStrategy } from './abstract-worker-choice-strategy'
 
 /**
  * Selects the less recently used worker.
  *
- * @template Worker Type of worker which manages the strategy.
- * @template Data Type of data sent to the worker. This can only be serializable data.
- * @template Response Type of response of execution. This can only be serializable data.
+ * @typeParam Worker - Type of worker which manages the strategy.
+ * @typeParam Data - Type of data sent to the worker. This can only be serializable data.
+ * @typeParam Response - Type of response of execution. This can only be serializable data.
  */
 export class LessRecentlyUsedWorkerChoiceStrategy<
-  Worker extends AbstractPoolWorker,
+  Worker extends IPoolWorker,
   Data,
   Response
 > extends AbstractWorkerChoiceStrategy<Worker, Data, Response> {
-  /** @inheritDoc */
+  /** {@inheritDoc} */
+  public reset (): boolean {
+    return true
+  }
+
+  /** {@inheritDoc} */
   public choose (): Worker {
     let minNumberOfRunningTasks = Infinity
     // A worker is always found because it picks the one with fewer tasks
@@ -22,7 +27,7 @@ export class LessRecentlyUsedWorkerChoiceStrategy<
       const workerRunningTasks = this.pool.getWorkerRunningTasks(
         worker
       ) as number
-      if (this.isDynamicPool === false && workerRunningTasks === 0) {
+      if (!this.isDynamicPool && workerRunningTasks === 0) {
         return worker
       } else if (workerRunningTasks < minNumberOfRunningTasks) {
         lessRecentlyUsedWorker = worker