Merge pull request #128130 from microsoft/tyriar/92649
Dispose of emitters on terminal instance
This commit is contained in:
commit
b47d277a2e
1 changed files with 33 additions and 29 deletions
|
@ -202,36 +202,39 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
get icon(): TerminalIcon | undefined { return this._getIcon(); }
|
||||
get color(): string | undefined { return this._getColor(); }
|
||||
|
||||
// The onExit event is special in that it fires and is disposed after the terminal instance
|
||||
// itself is disposed
|
||||
private readonly _onExit = new Emitter<number | undefined>();
|
||||
get onExit(): Event<number | undefined> { return this._onExit.event; }
|
||||
private readonly _onDisposed = new Emitter<ITerminalInstance>();
|
||||
get onDisposed(): Event<ITerminalInstance> { return this._onDisposed.event; }
|
||||
private readonly _onFocused = new Emitter<ITerminalInstance>();
|
||||
get onFocused(): Event<ITerminalInstance> { return this._onFocused.event; }
|
||||
private readonly _onProcessIdReady = new Emitter<ITerminalInstance>();
|
||||
get onProcessIdReady(): Event<ITerminalInstance> { return this._onProcessIdReady.event; }
|
||||
private readonly _onLinksReady = new Emitter<ITerminalInstance>();
|
||||
get onLinksReady(): Event<ITerminalInstance> { return this._onLinksReady.event; }
|
||||
private readonly _onTitleChanged = new Emitter<ITerminalInstance>();
|
||||
get onTitleChanged(): Event<ITerminalInstance> { return this._onTitleChanged.event; }
|
||||
private readonly _onIconChanged = new Emitter<ITerminalInstance>();
|
||||
get onIconChanged(): Event<ITerminalInstance> { return this._onIconChanged.event; }
|
||||
private readonly _onData = new Emitter<string>();
|
||||
get onData(): Event<string> { return this._onData.event; }
|
||||
private readonly _onBinary = new Emitter<string>();
|
||||
get onBinary(): Event<string> { return this._onBinary.event; }
|
||||
private readonly _onLineData = new Emitter<string>();
|
||||
get onLineData(): Event<string> { return this._onLineData.event; }
|
||||
private readonly _onRequestExtHostProcess = new Emitter<ITerminalInstance>();
|
||||
get onRequestExtHostProcess(): Event<ITerminalInstance> { return this._onRequestExtHostProcess.event; }
|
||||
private readonly _onDimensionsChanged = new Emitter<void>();
|
||||
get onDimensionsChanged(): Event<void> { return this._onDimensionsChanged.event; }
|
||||
private readonly _onMaximumDimensionsChanged = new Emitter<void>();
|
||||
get onMaximumDimensionsChanged(): Event<void> { return this._onMaximumDimensionsChanged.event; }
|
||||
private readonly _onFocus = new Emitter<ITerminalInstance>();
|
||||
get onFocus(): Event<ITerminalInstance> { return this._onFocus.event; }
|
||||
private readonly _onRequestAddInstanceToGroup = new Emitter<IRequestAddInstanceToGroupEvent>();
|
||||
get onRequestAddInstanceToGroup(): Event<IRequestAddInstanceToGroupEvent> { return this._onRequestAddInstanceToGroup.event; }
|
||||
readonly onExit = this._onExit.event;
|
||||
|
||||
private readonly _onDisposed = this._register(new Emitter<ITerminalInstance>());
|
||||
readonly onDisposed = this._onDisposed.event;
|
||||
private readonly _onFocused = this._register(new Emitter<ITerminalInstance>());
|
||||
readonly onFocused = this._onFocused.event;
|
||||
private readonly _onProcessIdReady = this._register(new Emitter<ITerminalInstance>());
|
||||
readonly onProcessIdReady = this._onProcessIdReady.event;
|
||||
private readonly _onLinksReady = this._register(new Emitter<ITerminalInstance>());
|
||||
readonly onLinksReady = this._onLinksReady.event;
|
||||
private readonly _onTitleChanged = this._register(new Emitter<ITerminalInstance>());
|
||||
readonly onTitleChanged = this._onTitleChanged.event;
|
||||
private readonly _onIconChanged = this._register(new Emitter<ITerminalInstance>());
|
||||
readonly onIconChanged = this._onIconChanged.event;
|
||||
private readonly _onData = this._register(new Emitter<string>());
|
||||
readonly onData = this._onData.event;
|
||||
private readonly _onBinary = this._register(new Emitter<string>());
|
||||
readonly onBinary = this._onBinary.event;
|
||||
private readonly _onLineData = this._register(new Emitter<string>());
|
||||
readonly onLineData = this._onLineData.event;
|
||||
private readonly _onRequestExtHostProcess = this._register(new Emitter<ITerminalInstance>());
|
||||
readonly onRequestExtHostProcess = this._onRequestExtHostProcess.event;
|
||||
private readonly _onDimensionsChanged = this._register(new Emitter<void>());
|
||||
readonly onDimensionsChanged = this._onDimensionsChanged.event;
|
||||
private readonly _onMaximumDimensionsChanged = this._register(new Emitter<void>());
|
||||
readonly onMaximumDimensionsChanged = this._onMaximumDimensionsChanged.event;
|
||||
private readonly _onFocus = this._register(new Emitter<ITerminalInstance>());
|
||||
readonly onFocus = this._onFocus.event;
|
||||
private readonly _onRequestAddInstanceToGroup = this._register(new Emitter<IRequestAddInstanceToGroupEvent>());
|
||||
readonly onRequestAddInstanceToGroup = this._onRequestAddInstanceToGroup.event;
|
||||
|
||||
constructor(
|
||||
private readonly _terminalFocusContextKey: IContextKey<boolean>,
|
||||
|
@ -1299,6 +1302,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
}
|
||||
|
||||
this._onExit.fire(this._exitCode);
|
||||
this._onExit.dispose();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue