Skip to content

Commit

Permalink
fix #159639
Browse files Browse the repository at this point in the history
  • Loading branch information
meganrogge committed Oct 6, 2022
1 parent 1eeb8b5 commit 65a45d5
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 31 deletions.
3 changes: 3 additions & 0 deletions src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2779,6 +2779,9 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
}

private _runTaskCommand(arg?: any): void {
if (!this._tasksReconnected) {
return;
}
const identifier = this._getTaskIdentifier(arg);
const type = arg && typeof arg !== 'string' && 'type' in arg ? arg.type : undefined;
const task = arg && typeof arg !== 'string' && 'task' in arg ? arg.task : arg === 'string' ? arg : undefined;
Expand Down
1 change: 0 additions & 1 deletion src/vs/workbench/contrib/terminal/browser/terminal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,6 @@ export interface ITerminalService extends ITerminalInstanceHost {
readonly defaultLocation: TerminalLocation;
readonly primaryBackendRegistered: Promise<void>;

initializeTerminals(): Promise<void>;
onDidChangeActiveGroup: Event<ITerminalGroup | undefined>;
onDidDisposeGroup: Event<ITerminalGroup>;
onDidCreateInstance: Event<ITerminalInstance>;
Expand Down
24 changes: 4 additions & 20 deletions src/vs/workbench/contrib/terminal/browser/terminalService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,6 @@ export class TerminalService implements ITerminalService {
private _terminalHasBeenCreated: IContextKey<boolean>;
private _terminalCountContextKey: IContextKey<number>;
private _configHelper: TerminalConfigHelper;
private _remoteTerminalsInitPromise: Promise<void> | undefined;
private _localTerminalsInitPromise: Promise<void> | undefined;
private _connectionState: TerminalConnectionState = TerminalConnectionState.Connecting;
private _nativeDelegate?: ITerminalServiceNativeDelegate;
private _shutdownWindowCount?: number;
Expand Down Expand Up @@ -261,7 +259,7 @@ export class TerminalService implements ITerminalService {
return undefined;
}

handleNewRegisteredBackend(backend: ITerminalBackend) {
async handleNewRegisteredBackend(backend: ITerminalBackend) {
if (backend.remoteAuthority === this._environmentService.remoteAuthority) {
this._primaryBackend = backend;
const enableTerminalReconnection = this.configHelper.config.enablePersistentSessions;
Expand All @@ -273,12 +271,11 @@ export class TerminalService implements ITerminalService {
const isPersistentRemote = !!this._environmentService.remoteAuthority && enableTerminalReconnection;

if (isPersistentRemote) {
this._remoteTerminalsInitPromise = this._reconnectToRemoteTerminals();
await this._reconnectToRemoteTerminals();
} else if (enableTerminalReconnection) {
this._localTerminalsInitPromise = this._reconnectToLocalTerminals();
} else {
this._connectionState = TerminalConnectionState.Connected;
await this._reconnectToLocalTerminals();
}
this._setConnected();

// Open the primary backend registered barrier to allow ITerminalService consumers to
// start using the backend
Expand Down Expand Up @@ -735,19 +732,6 @@ export class TerminalService implements ITerminalService {
return this.instances.some(term => term.processId === remoteTerm.pid);
}

async initializeTerminals(): Promise<void> {
if (this._remoteTerminalsInitPromise) {
await this._remoteTerminalsInitPromise;
this._setConnected();
} else if (this._localTerminalsInitPromise) {
await this._localTerminalsInitPromise;
this._setConnected();
}
if (this._terminalGroupService.groups.length === 0 && this.isProcessSupportRegistered) {
this.createTerminal({ location: TerminalLocation.Panel });
}
}

moveToEditor(source: ITerminalInstance): void {
if (source.target === TerminalLocation.Editor) {
return;
Expand Down
16 changes: 6 additions & 10 deletions src/vs/workbench/contrib/terminal/browser/terminalView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -164,19 +164,15 @@ export class TerminalViewPane extends ViewPane {

this._register(this.onDidChangeBodyVisibility(async visible => {
this._viewShowing.set(visible);
if (!this._terminalsInitialized) {
await this._terminalService.primaryBackendRegistered;
this._terminalsInitialized = true;
}
if (visible) {
const hadTerminals = !!this._terminalGroupService.groups.length;
// Ensure the primary backend is registered as it's important to do before
// initializeTerminals is called.
await this._terminalService.primaryBackendRegistered;
if (this._terminalService.isProcessSupportRegistered) {
if (this._terminalsInitialized) {
if (!hadTerminals) {
this._terminalService.createTerminal({ location: TerminalLocation.Panel });
}
} else {
this._terminalsInitialized = true;
this._terminalService.initializeTerminals();
if (!hadTerminals) {
this._terminalService.createTerminal({ location: TerminalLocation.Panel });
}
} else {
this._onDidChangeViewWelcomeState.fire();
Expand Down

0 comments on commit 65a45d5

Please sign in to comment.