]> Piment Noir Git Repositories - poolifier.git/commitdiff
refactor: refine waitWorkerNodeEvents() API
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 9 Jul 2025 09:19:46 +0000 (11:19 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 9 Jul 2025 09:19:46 +0000 (11:19 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
package.json
pnpm-lock.yaml
src/pools/abstract-pool.ts
src/pools/utils.ts
tests/test-utils.cjs

index 94a4ade4a5b339892333d955f82c149ef835a841..60488ee7f05278d4a536240ed4c19677a3085c4f 100644 (file)
     "@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",
index 8437ca25231c152bfbf817dee78e6a2082413259..c3f70cd0a70e1528f4a035d09888acdd3478c11d 100644 (file)
@@ -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
index 088696b40d2bd76eb49a53f22407014bf801a4fe..fdbe849315c79eab990df4a42ad6d7ae3877c663 100644 (file)
@@ -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()
index 630ec8e212107e9f75b1df5138b29f01a789ac18..fce4550fede365a836af546c7d16677d9e5eb18b 100644 (file)
@@ -459,7 +459,8 @@ export const waitWorkerNodeEvents = async <
   workerNode: IWorkerNode<Worker, Data>,
   workerNodeEvent: string,
   numberOfEventsToWait: number,
-  timeout: number
+  timeout: number,
+  timeoutRejection = true
 ): Promise<number> => {
   return await new Promise<number>((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) {
index a2d29cc06cf6ca98a7d78d8abc93608a21860db0..62f08001959e2a7be03b73ded5d80370f2d098ee 100644 (file)
@@ -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)