X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fabstract-pool.ts;h=b95d16b4b80259b5cb89d0e3c7717d31767e4d4c;hb=aec509b85e7d73e9883c8885e27fc4e34fdaef1e;hp=99f65a24a0ee85f606ab7937653cf0b641472bc8;hpb=243a550a93e278669fe5602aeba92dc8ba11260e;p=poolifier.git diff --git a/src/pools/abstract-pool.ts b/src/pools/abstract-pool.ts index 99f65a24..b95d16b4 100644 --- a/src/pools/abstract-pool.ts +++ b/src/pools/abstract-pool.ts @@ -6,10 +6,14 @@ import { median } from '../utils' import { KillBehaviors, isKillBehavior } from '../worker/worker-options' -import { PoolEvents, type PoolOptions, type TasksQueueOptions } from './pool' +import { + PoolEvents, + type IPool, + type PoolOptions, + type TasksQueueOptions, + PoolType +} from './pool' import { PoolEmitter } from './pool' -import type { IPoolInternal } from './pool-internal' -import { PoolType } from './pool-internal' import type { IWorker, Task, TasksUsage, WorkerNode } from './worker' import { WorkerChoiceStrategies, @@ -29,7 +33,7 @@ export abstract class AbstractPool< Worker extends IWorker, Data = unknown, Response = unknown -> implements IPoolInternal { +> implements IPool { /** @inheritDoc */ public readonly workerNodes: Array> = [] @@ -223,11 +227,19 @@ export abstract class AbstractPool< ) } - /** @inheritDoc */ - public abstract get full (): boolean + /** + * Whether the pool is full or not. + * + * The pool filling boolean status. + */ + protected abstract get full (): boolean - /** @inheritDoc */ - public abstract get busy (): boolean + /** + * Whether the pool is busy or not. + * + * The pool busyness boolean status. + */ + protected abstract get busy (): boolean protected internalBusy (): boolean { return this.findFreeWorkerNodeKey() === -1 @@ -258,10 +270,9 @@ export abstract class AbstractPool< if ( this.opts.enableTasksQueue === true && (this.busy || - this.workerNodes[workerNodeKey].tasksUsage.running > + this.workerNodes[workerNodeKey].tasksUsage.running >= ((this.opts.tasksQueueOptions as TasksQueueOptions) - .concurrency as number) - - 1) + .concurrency as number)) ) { this.enqueueTask(workerNodeKey, submittedTask) } else {