X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fthread%2Ffixed.ts;h=2ad94a7bf16083072bf1303745834c2b7c06506a;hb=f7d15c1217381b306300beb7926b42fde93bc579;hp=d69055cf0909efa3b9cf45983163e0be6a35c513;hpb=c3581f79ea34bd89cbdff40ac6c44eb7394f7919;p=poolifier.git diff --git a/src/pools/thread/fixed.ts b/src/pools/thread/fixed.ts index d69055cf..2ad94a7b 100644 --- a/src/pools/thread/fixed.ts +++ b/src/pools/thread/fixed.ts @@ -62,15 +62,12 @@ export class FixedThreadPool< // FIXME: wait for tasks to be finished const workerNode = this.workerNodes[workerNodeKey] const worker = workerNode.worker - const waitWorkerExit = new Promise((resolve) => { + const waitWorkerExit = new Promise(resolve => { worker.on('exit', () => { resolve() }) }) - await this.sendKillMessageToWorker( - workerNodeKey, - workerNode.info.id as number - ) + await this.sendKillMessageToWorker(workerNodeKey) workerNode.closeChannel() await worker.terminate() await waitWorkerExit @@ -84,16 +81,18 @@ export class FixedThreadPool< ): void { ( this.workerNodes[workerNodeKey].messageChannel as MessageChannel - ).port1.postMessage(message, transferList) + ).port1.postMessage( + { ...message, workerId: this.workerNodes[workerNodeKey].info.id }, + transferList + ) } /** @inheritDoc */ protected sendStartupMessageToWorker (workerNodeKey: number): void { const workerNode = this.workerNodes[workerNodeKey] - const worker = workerNode.worker const port2: MessagePort = (workerNode.messageChannel as MessageChannel) .port2 - worker.postMessage( + workerNode.worker.postMessage( { ready: false, workerId: workerNode.info.id,