From a500e32b8338e93b9ecabec69ad915044b6256e2 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Fri, 13 Jan 2017 11:43:33 -0800 Subject: [PATCH] Fix crash when killing waitOnExit terminal instances Fixes #18520 --- .../parts/terminal/electron-browser/terminalInstance.ts | 6 +++++- .../parts/terminal/electron-browser/terminalService.ts | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts index 80c1bdc376c..fea8521e112 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts @@ -381,7 +381,11 @@ export class TerminalInstance implements ITerminalInstance { exitCodeMessage = nls.localize('terminal.integrated.exitedWithCode', 'The terminal process terminated with exit code: {0}', exitCode); } - if (this._shellLaunchConfig.waitOnExit) { + // Only trigger wait on exit when the exit was triggered by the process, not through the + // `workbench.action.terminal.kill` command + const triggeredByProcess = exitCode !== null; + + if (triggeredByProcess && this._shellLaunchConfig.waitOnExit) { if (exitCode) { this._xterm.writeln(exitCodeMessage); } diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts index 8fe24f290c6..69e9419e05a 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts @@ -62,6 +62,7 @@ export class TerminalService implements ITerminalService { } public createInstance(shell: IShellLaunchConfig = {}): ITerminalInstance { + shell.waitOnExit = true; let terminalInstance = this._instantiationService.createInstance(TerminalInstance, this._terminalFocusContextKey, this._configHelper, -- GitLab