fix: fix tasks stealing dynamic worker node handling
[poolifier.git] / src / pools / abstract-pool.ts
index 649d5f0d0d5e268b26f3285f3dd27aaae52a1c2d..95d3970fdbd859f71ce67e5dd4b779bc6afeddcc 100644 (file)
@@ -1597,6 +1597,7 @@ export abstract class AbstractPool<
       const localWorkerNodeKey = this.getWorkerNodeKeyByWorkerId(
         message.workerId
       )
+      const workerInfo = this.getWorkerInfo(localWorkerNodeKey)
       const workerUsage = this.workerNodes[localWorkerNodeKey]?.usage
       // Kill message received from worker
       if (
@@ -1605,6 +1606,8 @@ export abstract class AbstractPool<
           ((this.opts.enableTasksQueue === false &&
             workerUsage.tasks.executing === 0) ||
             (this.opts.enableTasksQueue === true &&
+              workerInfo != null &&
+              !workerInfo.stealing &&
               workerUsage.tasks.executing === 0 &&
               this.tasksQueueSize(localWorkerNodeKey) === 0)))
       ) {