Run each window in a separate process #22891

Closed
opened 2026-01-31 08:26:20 +00:00 by claunia · 1 comment
Owner

Originally created by @olsner on GitHub (Feb 10, 2025).

Description of the new feature

When one terminal window crashes, it brings down every other terminal window on the computer since all windows are running from the same process. Personally, terminal windows are mission critical and it's bad enough to have a single one crash, let alone all of them at the same time.

Proposed technical implementation details

Start a new process for each opened window.

If really necessary add a setting to use shared processes for some possibly-maybe-memory-savings at the risk of losing more work?

Originally created by @olsner on GitHub (Feb 10, 2025). ### Description of the new feature When one terminal window crashes, it brings down every other terminal window on the computer since all windows are running from the same process. Personally, terminal windows are mission critical and it's bad enough to have a single one crash, let alone all of them at the same time. ### Proposed technical implementation details Start a new process for each opened window. If really necessary add a setting to use shared processes for some possibly-maybe-memory-savings at the risk of losing more work?
claunia added the Issue-FeatureNeeds-TriageNeeds-Tag-FixResolution-Won't-Fix labels 2026-01-31 08:26:20 +00:00
Author
Owner

@zadjii-msft commented on GitHub (Feb 10, 2025):

We actually used to do that! It was dramatically more complicated code, with tons of impossible to solve race conditions. And things like tab tear-out were neigh impossible to do without BOATLOADS of RPC for basically every input.

Moving everything into a single process happened in 1.18, and as of 1.23 all the windows get to live on the same thread too.

Now sure, this is not without its reliability concerns. But the codebase is dramatically easier to reason about with everything on one thread. I'd reckon it's easier to solve the situations leading to any crashes with the way things are structured currently. I'd rather just burn down existing sources of crashing (so that there's none at all), rather than trying to bring back all that RPC.

@zadjii-msft commented on GitHub (Feb 10, 2025): We actually used to do that! It was _dramatically_ more complicated code, with tons of impossible to solve race conditions. And things like tab tear-out were neigh impossible to do without BOATLOADS of RPC for basically every input. Moving everything into a single process happened in 1.18, and as of 1.23 all the windows get to live on the same thread too. Now sure, this is not without its reliability concerns. But the codebase is dramatically easier to reason about with everything on one thread. I'd reckon it's easier to solve the situations leading to any crashes with the way things are structured currently. I'd rather just burn down existing sources of crashing (so that there's none at all), rather than trying to bring back all that RPC.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#22891