()
| 661 | } |
| 662 | let interruptPromise: Promise<void> | null = null; |
| 663 | const interrupt = () => { |
| 664 | // Cancel the coordinator before interrupt side effects can block on task cleanup or disk I/O. |
| 665 | runnerAbortController?.abort(); |
| 666 | interruptPromise = (async () => { |
| 667 | try { |
| 668 | await this.interruptRun({ workspaceId, runId }); |
| 669 | } catch { |
| 670 | // The run may have completed or failed before the abort event was delivered. |
| 671 | } |
| 672 | })(); |
| 673 | }; |
| 674 | abortSignal.addEventListener("abort", interrupt, { once: true }); |
| 675 | return { |
| 676 | remove: () => abortSignal.removeEventListener("abort", interrupt), |
no test coverage detected