]> Piment Noir Git Repositories - poolifier.git/commitdiff
fix: replace isAsyncFunction with instanceof Promise in handleKillMessage
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 21 Apr 2026 19:14:12 +0000 (21:14 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 21 Apr 2026 19:14:12 +0000 (21:14 +0200)
src/worker/abstract-worker.ts

index ac2e55b4605823d713c44d60a2c8109b69767297..d70a073d3db330d88ab3ec1dc6880d4aa2aa52b6 100644 (file)
@@ -292,22 +292,22 @@ export abstract class AbstractWorker<
    */
   protected handleKillMessage (message: MessageValue<Data>): void {
     this.stopCheckActive()
-    if (isAsyncFunction(this.opts.killHandler)) {
-      ;(this.opts.killHandler as () => Promise<void>)()
-        .then(() => {
-          this.sendToMainWorker({ kill: 'success' })
-          return undefined
-        })
-        .catch(() => {
-          this.sendToMainWorker({ kill: 'failure' })
-        })
-    } else {
-      try {
-        ;(this.opts.killHandler as (() => void) | undefined)?.()
+    try {
+      const result = this.opts.killHandler?.()
+      if (result instanceof Promise) {
+        result
+          .then(() => {
+            this.sendToMainWorker({ kill: 'success' })
+            return undefined
+          })
+          .catch(() => {
+            this.sendToMainWorker({ kill: 'failure' })
+          })
+      } else {
         this.sendToMainWorker({ kill: 'success' })
-      } catch {
-        this.sendToMainWorker({ kill: 'failure' })
       }
+    } catch {
+      this.sendToMainWorker({ kill: 'failure' })
     }
   }