Merge pull request #207952 from microsoft/tyriar/instance_cleanup

Reuse write code in _onProcessData
This commit is contained in:
Daniel Imms
2024-03-17 13:03:11 -07:00
committed by GitHub
@@ -1459,23 +1459,22 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
}
private _onProcessData(ev: IProcessDataEvent): void {
const messageId = ++this._latestXtermWriteData;
if (ev.trackCommit) {
ev.writePromise = new Promise<void>(r => {
this.xterm?.raw.write(ev.data, () => {
this._latestXtermParseData = messageId;
this._processManager.acknowledgeDataEvent(ev.data.length);
r();
});
});
ev.writePromise = new Promise<void>(r => this._writeProcessData(ev, r));
} else {
this.xterm?.raw.write(ev.data, () => {
this._latestXtermParseData = messageId;
this._processManager.acknowledgeDataEvent(ev.data.length);
});
this._writeProcessData(ev);
}
}
private _writeProcessData(ev: IProcessDataEvent, cb?: () => void) {
const messageId = ++this._latestXtermWriteData;
this.xterm?.raw.write(ev.data, () => {
this._latestXtermParseData = messageId;
this._processManager.acknowledgeDataEvent(ev.data.length);
cb?.();
});
}
/**
* Called when either a process tied to a terminal has exited or when a terminal renderer
* simulates a process exiting (e.g. custom execution task).