diff --git a/src/vs/workbench/parts/terminal/node/terminalProcess.ts b/src/vs/workbench/parts/terminal/node/terminalProcess.ts index aa4f085c7bb41620ef4f3d3a8d4728f4f43d1e0c..71d4cf21fe839011199a34050a111df74d10122d 100644 --- a/src/vs/workbench/parts/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/parts/terminal/node/terminalProcess.ts @@ -56,14 +56,17 @@ function queueProcessExit() { clearTimeout(closeTimeout); } closeTimeout = setTimeout(function () { + ptyProcess.kill(); if (process.platform === 'win32') { // Forcefully kill the entire process tree under the shell process // on Windows as ptyProcess.kill can leave some lingering processes. // See https://github.com/Microsoft/vscode/issues/26807 - cp.execFileSync('taskkill.exe', ['/T', '/F', '/PID', ptyProcess.pid.toString()]); + cp.execFile('taskkill.exe', ['/T', '/F', '/PID', ptyProcess.pid.toString()]).on('close', () => { + process.exit(exitCode); + }); + } else { + process.exit(exitCode); } - ptyProcess.kill(); - process.exit(exitCode); }, 250); }