From: Jérôme Benoit Date: Wed, 9 Jul 2025 09:19:46 +0000 (+0200) Subject: refactor: refine waitWorkerNodeEvents() API X-Git-Tag: v5.0.7~8 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=840352e3ba045c80c0e1e860e7d56355a12c3b2d;p=poolifier.git refactor: refine waitWorkerNodeEvents() API Signed-off-by: Jérôme Benoit --- diff --git a/package.json b/package.json index 94a4ade4a..60488ee7f 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.4", "@std/expect": "npm:@jsr/std__expect@^1.0.16", - "@types/node": "^24.0.11", + "@types/node": "^24.0.12", "c8": "^10.1.3", "clean-publish": "^5.2.2", "cross-env": "^7.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8437ca252..c3f70cd0a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 2.1.1 '@commitlint/cli': specifier: ^19.8.1 - version: 19.8.1(@types/node@24.0.11)(typescript@5.8.3) + version: 19.8.1(@types/node@24.0.12)(typescript@5.8.3) '@commitlint/config-conventional': specifier: ^19.8.1 version: 19.8.1 @@ -36,8 +36,8 @@ importers: specifier: npm:@jsr/std__expect@^1.0.16 version: '@jsr/std__expect@1.0.16' '@types/node': - specifier: ^24.0.11 - version: 24.0.11 + specifier: ^24.0.12 + version: 24.0.12 c8: specifier: ^10.1.3 version: 10.1.3 @@ -795,8 +795,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@24.0.11': - resolution: {integrity: sha512-CJV8eqrYnwQJGMrvcRhQmZfpyniDavB+7nAZYJc6w99hFYJyFN3INV1/2W3QfQrqM36WTLrijJ1fxxvGBmCSxA==} + '@types/node@24.0.12': + resolution: {integrity: sha512-LtOrbvDf5ndC9Xi+4QZjVL0woFymF/xSTKZKPgrrl7H7XoeDvnD+E2IclKVDyaK9UM756W/3BXqSU+JEHopA9g==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} @@ -2844,11 +2844,11 @@ snapshots: '@biomejs/cli-win32-x64@2.1.1': optional: true - '@commitlint/cli@19.8.1(@types/node@24.0.11)(typescript@5.8.3)': + '@commitlint/cli@19.8.1(@types/node@24.0.12)(typescript@5.8.3)': dependencies: '@commitlint/format': 19.8.1 '@commitlint/lint': 19.8.1 - '@commitlint/load': 19.8.1(@types/node@24.0.11)(typescript@5.8.3) + '@commitlint/load': 19.8.1(@types/node@24.0.12)(typescript@5.8.3) '@commitlint/read': 19.8.1 '@commitlint/types': 19.8.1 tinyexec: 1.0.1 @@ -2895,7 +2895,7 @@ snapshots: '@commitlint/rules': 19.8.1 '@commitlint/types': 19.8.1 - '@commitlint/load@19.8.1(@types/node@24.0.11)(typescript@5.8.3)': + '@commitlint/load@19.8.1(@types/node@24.0.12)(typescript@5.8.3)': dependencies: '@commitlint/config-validator': 19.8.1 '@commitlint/execute-rule': 19.8.1 @@ -2903,7 +2903,7 @@ snapshots: '@commitlint/types': 19.8.1 chalk: 5.4.1 cosmiconfig: 9.0.0(typescript@5.8.3) - cosmiconfig-typescript-loader: 6.1.0(@types/node@24.0.11)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@24.0.12)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -3477,7 +3477,7 @@ snapshots: '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 24.0.11 + '@types/node': 24.0.12 '@types/estree@1.0.8': {} @@ -3489,7 +3489,7 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@24.0.11': + '@types/node@24.0.12': dependencies: undici-types: 7.8.0 @@ -3896,9 +3896,9 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig-typescript-loader@6.1.0(@types/node@24.0.11)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): + cosmiconfig-typescript-loader@6.1.0(@types/node@24.0.12)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): dependencies: - '@types/node': 24.0.11 + '@types/node': 24.0.12 cosmiconfig: 9.0.0(typescript@5.8.3) jiti: 2.4.2 typescript: 5.8.3 diff --git a/src/pools/abstract-pool.ts b/src/pools/abstract-pool.ts index 088696b40..fdbe84931 100644 --- a/src/pools/abstract-pool.ts +++ b/src/pools/abstract-pool.ts @@ -1199,7 +1199,8 @@ export abstract class AbstractPool< this.opts.tasksQueueOptions?.tasksFinishedTimeout ?? getDefaultTasksQueueOptions( this.maximumNumberOfWorkers ?? this.minimumNumberOfWorkers - ).tasksFinishedTimeout + ).tasksFinishedTimeout, + false ) await this.sendKillMessageToWorker(workerNodeKey) await workerNode.terminate() diff --git a/src/pools/utils.ts b/src/pools/utils.ts index 630ec8e21..fce4550fe 100644 --- a/src/pools/utils.ts +++ b/src/pools/utils.ts @@ -459,7 +459,8 @@ export const waitWorkerNodeEvents = async < workerNode: IWorkerNode, workerNodeEvent: string, numberOfEventsToWait: number, - timeout: number + timeout: number, + timeoutRejection = true ): Promise => { return await new Promise((resolve, reject) => { let events = 0 @@ -479,7 +480,13 @@ export const waitWorkerNodeEvents = async < timeout >= 0 ? setTimeout(() => { workerNode.off(workerNodeEvent, listener) - resolve(events) + timeoutRejection + ? reject( + new Error( + `Timed out after ${timeout.toString()}ms waiting for ${numberOfEventsToWait.toString()} '${workerNodeEvent}' events. Received ${events.toString()} events` + ) + ) + : resolve(events) }, timeout) : undefined switch (workerNodeEvent) { diff --git a/tests/test-utils.cjs b/tests/test-utils.cjs index a2d29cc06..62f080019 100644 --- a/tests/test-utils.cjs +++ b/tests/test-utils.cjs @@ -19,7 +19,7 @@ const waitWorkerEvents = async ( }) reject( new Error( - `Timed out after ${timeoutMs}ms waiting for ${numberOfEventsToWait} '${workerEvent}' events. Received ${events}.` + `Timed out after ${timeoutMs.toString()}ms waiting for ${numberOfEventsToWait.toString()} '${workerEvent}' events. Received ${events.toString()} events` ) ) }, timeoutMs)