diff options
Diffstat (limited to 'packages/core/src/tools/shell.ts')
| -rw-r--r-- | packages/core/src/tools/shell.ts | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/packages/core/src/tools/shell.ts b/packages/core/src/tools/shell.ts index 2117366a..8fa32490 100644 --- a/packages/core/src/tools/shell.ts +++ b/packages/core/src/tools/shell.ts @@ -257,9 +257,11 @@ export class ShellTool extends BaseTool<ShellToolParams, ToolResult> { abortSignal.addEventListener('abort', abortHandler); // wait for the shell to exit - await new Promise((resolve) => shell.on('exit', resolve)); - - abortSignal.removeEventListener('abort', abortHandler); + try { + await new Promise((resolve) => shell.on('exit', resolve)); + } finally { + abortSignal.removeEventListener('abort', abortHandler); + } // parse pids (pgrep output) from temporary file and remove it const backgroundPIDs: number[] = []; |
