terminal: Spawn terminal process on main thread on unix (#42234)

Otherwise the terminal will not process the signals correctly 

Release Notes:

- Fixed ctrl+c and friends not working in the terminal on macOS and
linux
This commit is contained in:
Lukas Wirth
2025-11-07 20:56:43 +00:00
committed by GitHub
parent 4511d11a11
commit 0881e548de
+8 -2
View File
@@ -426,7 +426,7 @@ impl TerminalBuilder {
activation_script: Vec<String>,
) -> Task<Result<TerminalBuilder>> {
let version = release_channel::AppVersion::global(cx);
cx.background_spawn(async move {
let fut = async move {
// If the parent environment doesn't have a locale set
// (As is the case when launched from a .app on MacOS),
// and the Project doesn't have a locale set, then
@@ -648,7 +648,13 @@ impl TerminalBuilder {
terminal,
events_rx,
})
})
};
// the thread we spawn things on has an effect on signal handling
if cfg!(target_os = "unix") {
cx.spawn(async move |_| fut.await)
} else {
cx.background_spawn(fut)
}
}
pub fn subscribe(mut self, cx: &Context<Terminal>) -> Terminal {