diff --git a/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts b/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts index 6b76c73e9def..a97ef5267e6d 100644 --- a/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts +++ b/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts @@ -175,8 +175,14 @@ export class TerminalTaskSystem extends EventEmitter implements ITaskSystem { if (!terminalData) { return TPromise.as({ success: false }); }; - terminalData.terminal.dispose(); - return TPromise.as({ success: true }); + return new TPromise((resolve, reject) => { + let terminal = terminalData.terminal; + const onExit = terminal.onExit(() => { + onExit.dispose(); + resolve({ success: true }); + }); + terminal.dispose(); + }); } public terminateAll(): TPromise {