X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fabstract-pool.ts;h=8363ecba9f8d3c98d9071023e99f4b7b47053e7a;hb=dd6a5ce306e8ffc7dccf8734c79e2ecf10d4d59b;hp=2b59abf27cfa2a37a518610afce2998d2dff1c6a;hpb=6c6afb8463782af0689101b7c67cea80df83018f;p=poolifier.git diff --git a/src/pools/abstract-pool.ts b/src/pools/abstract-pool.ts index 2b59abf2..8363ecba 100644 --- a/src/pools/abstract-pool.ts +++ b/src/pools/abstract-pool.ts @@ -661,7 +661,7 @@ export abstract class AbstractPool< >(worker: Worker, listener: (message: MessageValue) => void): void /** - * Creates a newly worker. + * Creates a new worker. * * @returns Newly created worker. */ @@ -721,12 +721,15 @@ export abstract class AbstractPool< if ( isKillBehavior(KillBehaviors.HARD, message.kill) || (message.kill != null && - this.workerNodes[currentWorkerNodeKey].workerUsage.tasks.executing === - 0) + ((this.opts.enableTasksQueue === false && + this.workerNodes[currentWorkerNodeKey].workerUsage.tasks + .executing === 0) || + (this.opts.enableTasksQueue === true && + this.workerNodes[currentWorkerNodeKey].workerUsage.tasks + .executing === 0 && + this.tasksQueueSize(currentWorkerNodeKey) === 0))) ) { // Kill message received from the worker: no new tasks are submitted to that worker for a while ( > maxInactiveTime) - this.flushTasksQueue(currentWorkerNodeKey) - // FIXME: wait for tasks to be finished void (this.destroyWorker(worker) as Promise) } }) @@ -763,6 +766,7 @@ export abstract class AbstractPool< workerNodeKey, this.dequeueTask(workerNodeKey) as Task ) + this.workerChoiceStrategyContext.update(workerNodeKey) } } }