summaryrefslogtreecommitdiff
path: root/packages/core/src/tools/shell.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src/tools/shell.ts')
-rw-r--r--packages/core/src/tools/shell.ts8
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[] = [];