X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fpools%2Fabstract-pool.ts;h=a840dc740116057f8fa7867f85348a676caf04a4;hb=ffe8ca52bf1a05f68a0c939d16f15b6b54028be9;hp=661eb7b6ec363c228ad0c540f43b44361b76e75e;hpb=875a7c37808f9dd37369348b5b4574881d5f9c32;p=poolifier.git diff --git a/src/pools/abstract-pool.ts b/src/pools/abstract-pool.ts index 661eb7b6..a840dc74 100644 --- a/src/pools/abstract-pool.ts +++ b/src/pools/abstract-pool.ts @@ -214,10 +214,7 @@ export abstract class AbstractPool< public abstract get busy (): boolean protected internalBusy (): boolean { - return ( - this.numberOfRunningTasks >= this.numberOfWorkers && - this.findFreeWorkerNodeKey() === -1 - ) + return this.findFreeWorkerNodeKey() === -1 } /** @inheritDoc */ @@ -339,11 +336,7 @@ export abstract class AbstractPool< */ protected chooseWorkerNode (): [number, WorkerNode] { let workerNodeKey: number - if ( - this.type === PoolType.DYNAMIC && - !this.full && - this.findFreeWorkerNodeKey() === -1 - ) { + if (this.type === PoolType.DYNAMIC && !this.full && this.internalBusy()) { const workerCreated = this.createAndSetupWorker() this.registerWorkerMessageListener(workerCreated, message => { if ( @@ -551,8 +544,8 @@ export abstract class AbstractPool< this.sendToWorker(this.workerNodes[workerNodeKey].worker, task) } - private enqueueTask (workerNodeKey: number, task: Task): void { - this.workerNodes[workerNodeKey].tasksQueue.push(task) + private enqueueTask (workerNodeKey: number, task: Task): number { + return this.workerNodes[workerNodeKey].tasksQueue.push(task) } private dequeueTask (workerNodeKey: number): Task | undefined {