X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fpools%2Fabstract-pool.ts;h=f922aff5b3bb801c0e8f864fb0b3c559d6702f62;hb=9edb9717ae4c1c86bd7d28553eaa1ef141fc133b;hp=f76ad2f55bf4326383077456d7414aa8c023ea2e;hpb=e1af34e6d9705f4ed27c94021b00cd421038ebe3;p=poolifier.git diff --git a/src/pools/abstract-pool.ts b/src/pools/abstract-pool.ts index f76ad2f5..f922aff5 100644 --- a/src/pools/abstract-pool.ts +++ b/src/pools/abstract-pool.ts @@ -555,7 +555,7 @@ export abstract class AbstractPool< } for (const [workerNodeKey, workerNode] of this.workerNodes.entries()) { workerNode.resetUsage() - this.sendWorkerStatisticsMessageToWorker(workerNodeKey) + this.sendStatisticsMessageToWorker(workerNodeKey) } } @@ -698,7 +698,7 @@ export abstract class AbstractPool< workerNodeKey: number, workerId: number ): Promise { - const waitForKillResponse = new Promise((resolve, reject) => { + await new Promise((resolve, reject) => { this.registerWorkerMessageListener(workerNodeKey, (message) => { if (message.kill === 'success') { resolve() @@ -706,9 +706,8 @@ export abstract class AbstractPool< reject(new Error(`Worker ${workerId} kill message handling failed`)) } }) + this.sendToWorker(workerNodeKey, { kill: true, workerId }) }) - this.sendToWorker(workerNodeKey, { kill: true, workerId }) - await waitForKillResponse } /** @@ -958,7 +957,9 @@ export abstract class AbstractPool< workerUsage.tasks.executing === 0 && this.tasksQueueSize(localWorkerNodeKey) === 0))) ) { - this.destroyWorkerNode(localWorkerNodeKey).catch(EMPTY_FUNCTION) + this.destroyWorkerNode(localWorkerNodeKey).catch((error) => { + this.emitter?.emit(PoolEvents.error, error) + }) } }) const workerInfo = this.getWorkerInfo(workerNodeKey) @@ -997,8 +998,8 @@ export abstract class AbstractPool< this.registerWorkerMessageListener(workerNodeKey, this.workerListener()) // Send the startup message to worker. this.sendStartupMessageToWorker(workerNodeKey) - // Send the worker statistics message to worker. - this.sendWorkerStatisticsMessageToWorker(workerNodeKey) + // Send the statistics message to worker. + this.sendStatisticsMessageToWorker(workerNodeKey) } /** @@ -1009,11 +1010,11 @@ export abstract class AbstractPool< protected abstract sendStartupMessageToWorker (workerNodeKey: number): void /** - * Sends the worker statistics message to worker given its worker node key. + * Sends the statistics message to worker given its worker node key. * * @param workerNodeKey - The worker node key. */ - private sendWorkerStatisticsMessageToWorker (workerNodeKey: number): void { + private sendStatisticsMessageToWorker (workerNodeKey: number): void { this.sendToWorker(workerNodeKey, { statistics: { runTime: