mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-02 00:09:30 +01:00
Fix memory leak in chat terminal tool from accumulated disposables (#306832)
fix #289711
This commit is contained in:
@@ -1496,7 +1496,7 @@ export class RunInTerminalTool extends Disposable implements IToolImpl {
|
||||
toolTerminal.receivedUserInput = data.length > 0;
|
||||
}
|
||||
});
|
||||
this._register(toolTerminal.instance.onDisposed(() => disposable.dispose()));
|
||||
Event.once(toolTerminal.instance.onDisposed)(() => disposable.dispose());
|
||||
}
|
||||
|
||||
|
||||
@@ -1526,9 +1526,9 @@ export class RunInTerminalTool extends Disposable implements IToolImpl {
|
||||
this._terminalChatService.registerTerminalInstanceWithChatSession(chatSessionResource, instance);
|
||||
|
||||
// Listen for terminal disposal to clean up storage
|
||||
this._register(instance.onDisposed(() => {
|
||||
Event.once(instance.onDisposed)(() => {
|
||||
this._removeProcessIdAssociation(instance.processId!);
|
||||
}));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1539,11 +1539,11 @@ export class RunInTerminalTool extends Disposable implements IToolImpl {
|
||||
|
||||
private async _setupProcessIdAssociation(toolTerminal: IToolTerminal, chatSessionResource: URI, termId: string, isBackground: boolean) {
|
||||
await this._associateProcessIdWithSession(toolTerminal.instance, chatSessionResource, termId, toolTerminal.shellIntegrationQuality, isBackground);
|
||||
this._register(toolTerminal.instance.onDisposed(() => {
|
||||
Event.once(toolTerminal.instance.onDisposed)(() => {
|
||||
if (toolTerminal!.instance.processId) {
|
||||
this._removeProcessIdAssociation(toolTerminal!.instance.processId);
|
||||
}
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
private async _associateProcessIdWithSession(terminal: ITerminalInstance, chatSessionResource: URI, id: string, shellIntegrationQuality: ShellIntegrationQuality, isBackground?: boolean): Promise<void> {
|
||||
|
||||
Reference in New Issue
Block a user