Follow up from #154050
We now have sufficient infrastructure in place to easily fork a UtilityProcess with support of message port communication to other processes:
|
export class UtilityProcess extends Disposable { |
Currently the PTY agent is still running as child process in the shared process housing all terminals:
|
const ptyHostService = new PtyHostService({ |
|
graceTime: LocalReconnectConstants.GraceTime, |
|
shortGraceTime: LocalReconnectConstants.ShortGraceTime, |
|
scrollback: configurationService.getValue<number>(TerminalSettingId.PersistentSessionScrollback) ?? 100 |
|
}, |
|
localize('ptyHost', "Pty Host"), |
|
configurationService, |
|
environmentService, |
|
logService, |
|
loggerService |
|
); |
|
ptyHostService.initialize(); |
|
|
|
services.set(ILocalPtyService, this._register(ptyHostService)); |
We should consider moving the PTY agent out into a standalone utility process to reduce pressure on the shared process (and actually vice versa, reduce pressure on terminals).
Follow up from #154050
We now have sufficient infrastructure in place to easily fork a
UtilityProcesswith support of message port communication to other processes:vscode/src/vs/platform/utilityProcess/electron-main/utilityProcess.ts
Line 121 in ed6bb07
Currently the PTY agent is still running as child process in the shared process housing all terminals:
vscode/src/vs/code/node/sharedProcess/sharedProcessMain.ts
Lines 386 to 399 in ed6bb07
We should consider moving the PTY agent out into a standalone utility process to reduce pressure on the shared process (and actually vice versa, reduce pressure on terminals).