INNER CODE UNIT · Rust
handle_app_exit
owu/wsl-dashboard · src/app/tasks/mod.rs:110
pub async fn handle_app_exit(app: &AppWindow, app_state: &Arc<Mutex<AppState>>) {
let auto_shutdown = app.get_auto_shutdown();
if auto_shutdown {
trace!("Auto-shutdown on exit is enabled, shutting down WSL...");
let manager = {
let state = app_state.lock().await;
state.wsl_dashboard.clone()
};
manager.shutdown_wsl().await;
trace!("WSL shut down completed");
}
}
// Listen for wakeup requests from secondary instances (Named Pipe IPC)
pub fn spawn_wakeup_listener(app_handle: slint::Weak<AppWindow>) {
#[cfg(target_os = "windows")]
tokio::spawn(async move {
use tokio::net::windows::named_pipe::ServerOptions;