From f82cd3579677f83c17289218d4ae8242e7d0a8d7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 12 Apr 2023 22:22:39 +0200 Subject: [PATCH] fix: fix tasks usage initialization MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- src/pools/abstract-pool.ts | 22 +++++++++++++++++++--- src/utils.ts | 15 --------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/pools/abstract-pool.ts b/src/pools/abstract-pool.ts index 1c59f74b..3be40e6d 100644 --- a/src/pools/abstract-pool.ts +++ b/src/pools/abstract-pool.ts @@ -3,7 +3,6 @@ import type { MessageValue, PromiseResponseWrapper } from '../utility-types' import { DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS, EMPTY_FUNCTION, - INITIAL_TASKS_USAGE, median } from '../utils' import { KillBehaviors, isKillBehavior } from '../worker/worker-options' @@ -21,6 +20,7 @@ import { type WorkerChoiceStrategy } from './selection-strategies/selection-strategies-types' import { WorkerChoiceStrategyContext } from './selection-strategies/worker-choice-strategy-context' +import { CircularArray } from '../circular-array' /** * Base class that implements some shared logic for all poolifier pools. @@ -212,7 +212,15 @@ export abstract class AbstractPool< this.checkValidWorkerChoiceStrategy(workerChoiceStrategy) this.opts.workerChoiceStrategy = workerChoiceStrategy for (const workerNode of this.workerNodes) { - this.setWorkerNodeTasksUsage(workerNode, INITIAL_TASKS_USAGE) + this.setWorkerNodeTasksUsage(workerNode, { + run: 0, + running: 0, + runTime: 0, + runTimeHistory: new CircularArray(), + avgRunTime: 0, + medRunTime: 0, + error: 0 + }) } this.workerChoiceStrategyContext.setWorkerChoiceStrategy( workerChoiceStrategy @@ -518,7 +526,15 @@ export abstract class AbstractPool< private pushWorkerNode (worker: Worker): number { return this.workerNodes.push({ worker, - tasksUsage: INITIAL_TASKS_USAGE, + tasksUsage: { + run: 0, + running: 0, + runTime: 0, + runTimeHistory: new CircularArray(), + avgRunTime: 0, + medRunTime: 0, + error: 0 + }, tasksQueue: [] }) } diff --git a/src/utils.ts b/src/utils.ts index 1d7f81d2..fc328a6c 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,6 +1,4 @@ -import { CircularArray } from './circular-array' import type { WorkerChoiceStrategyOptions } from './pools/selection-strategies/selection-strategies-types' -import type { TasksUsage } from './pools/worker' /** * An intentional empty function. @@ -9,19 +7,6 @@ export const EMPTY_FUNCTION: () => void = Object.freeze(() => { /* Intentionally empty */ }) -/** - * Initial tasks usage statistics. - */ -export const INITIAL_TASKS_USAGE: TasksUsage = { - run: 0, - running: 0, - runTime: 0, - runTimeHistory: new CircularArray(), - avgRunTime: 0, - medRunTime: 0, - error: 0 -} - /** * Default worker choice strategy options. */ -- 2.34.1