protected createAndSetupDynamicWorkerNode (): number {
const workerNodeKey = this.createAndSetupWorkerNode()
this.registerWorkerMessageListener(workerNodeKey, message => {
+ if (this.destroying) {
+ return
+ }
this.checkMessageWorkerId(message)
const localWorkerNodeKey = this.getWorkerNodeKeyByWorkerId(
message.workerId
this.isWorkerNodeIdle(localWorkerNodeKey) &&
!this.isWorkerNodeStealing(localWorkerNodeKey))
) {
- // Flag the worker node as not ready immediately
- this.flagWorkerNodeAsNotReady(localWorkerNodeKey)
this.destroyWorkerNode(localWorkerNodeKey).catch((error: unknown) => {
this.emitter?.emit(PoolEvents.error, error)
})
}
const listener = () => {
++events
- if (events === numberOfEventsToWait) {
+ if (events >= numberOfEventsToWait) {
if (timeoutHandle != null) clearTimeout(timeoutHandle)
workerNode.off(workerNodeEvent, listener)
resolve(events)
}, timeoutMs)
const listener = () => {
events++
- if (events === numberOfEventsToWait) {
+ if (events >= numberOfEventsToWait) {
clearTimeout(timeout)
listeners.forEach(({ listener, workerNode }) => {
workerNode.worker.off(workerEvent, listener)