fix: refine pool statuses handling
[poolifier.git] / src / pools / worker-node.ts
index d80c03d80f00edc474da050ca41c8297c12142dd..d2397676bb77235279b72748e7e449c97ed0ca13 100644 (file)
@@ -132,13 +132,16 @@ export class WorkerNode<Worker extends IWorker, Data = unknown>
     })
     this.closeMessageChannel()
     this.removeAllListeners()
-    if (this.info.type === WorkerTypes.thread) {
-      await this.worker.terminate?.()
-    } else if (this.info.type === WorkerTypes.cluster) {
-      this.registerOnceWorkerEventHandler('disconnect', () => {
-        this.worker.kill?.()
-      })
-      this.worker.disconnect?.()
+    switch (this.info.type) {
+      case WorkerTypes.thread:
+        await this.worker.terminate?.()
+        break
+      case WorkerTypes.cluster:
+        this.registerOnceWorkerEventHandler('disconnect', () => {
+          this.worker.kill?.()
+        })
+        this.worker.disconnect?.()
+        break
     }
     await waitWorkerExit
   }
@@ -211,7 +214,8 @@ export class WorkerNode<Worker extends IWorker, Data = unknown>
       id: getWorkerId(worker),
       type: getWorkerType(worker) as WorkerType,
       dynamic: false,
-      ready: false
+      ready: false,
+      stealing: false
     }
   }