diff --git a/apps/darkroom-desktop/src/main.rs b/apps/darkroom-desktop/src/main.rs index d5b983f..05713c8 100644 --- a/apps/darkroom-desktop/src/main.rs +++ b/apps/darkroom-desktop/src/main.rs @@ -17,5 +17,12 @@ fn main() -> anyhow::Result<()> { eprintln!("usage: darkroom-desktop ..."); } - dr_ui::run(paths) + dr_ui::run(paths)?; + + // Skip Rust's normal static/thread-local teardown on the way out: a + // background zbus/keyring connection opened by dr_ui::launch_ui can + // still be alive here, and unwinding through it races its async-io + // reactor thread, panicking with "thread local ... during or after + // destruction" when the window is closed. + std::process::exit(0); }