From f8168e6c2ed6da949c1b7137e69e0499913b5792 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 20 Aug 2018 16:16:52 -0700 Subject: [PATCH] Don't request terminal processes before ext host is ready --- .../terminal/node/terminalProcessExtHostProxy.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/parts/terminal/node/terminalProcessExtHostProxy.ts b/src/vs/workbench/parts/terminal/node/terminalProcessExtHostProxy.ts index 52bc33c6fa5..cac16c5ff22 100644 --- a/src/vs/workbench/parts/terminal/node/terminalProcessExtHostProxy.ts +++ b/src/vs/workbench/parts/terminal/node/terminalProcessExtHostProxy.ts @@ -7,6 +7,7 @@ import { ITerminalChildProcess } from 'vs/workbench/parts/terminal/node/terminal import { Event, Emitter } from 'vs/base/common/event'; import { ITerminalService, ITerminalProcessExtHostProxy, IShellLaunchConfig } from 'vs/workbench/parts/terminal/common/terminal'; import { IDisposable } from 'vs/base/common/lifecycle'; +import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; export class TerminalProcessExtHostProxy implements ITerminalChildProcess, ITerminalProcessExtHostProxy { private _disposables: IDisposable[] = []; @@ -32,10 +33,15 @@ export class TerminalProcessExtHostProxy implements ITerminalChildProcess, ITerm shellLaunchConfig: IShellLaunchConfig, cols: number, rows: number, - @ITerminalService private _terminalService: ITerminalService + @ITerminalService private _terminalService: ITerminalService, + @IExtensionService private readonly _extensionService: IExtensionService ) { - // TODO: Return TPromise indicating success? Teardown if failure? - this._terminalService.requestExtHostProcess(this, shellLaunchConfig, cols, rows); + this._extensionService.whenInstalledExtensionsRegistered().then(() => { + // TODO: MainThreadTerminalService is not ready at this point, fix this + setTimeout(() => { + this._terminalService.requestExtHostProcess(this, shellLaunchConfig, cols, rows); + }, 0); + }); } public dispose(): void { -- GitLab