diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 76ad2eb..0dae0a4 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -218,6 +218,8 @@ pub fn run() { let shutdown_flag = Arc::new(AtomicBool::new(false)); let ctrlc_flag = shutdown_flag.clone(); + let setup_flag = shutdown_flag.clone(); + let event_flag = shutdown_flag.clone(); ctrlc::set_handler(move || { info!("Ctrl+C received, shutting down gracefully..."); @@ -238,7 +240,7 @@ pub fn run() { let app = tauri::Builder::default() .plugin(hotswap) .plugin(tauri_plugin_shell::init()) - .setup(|app| { + .setup(move |app| { info!("Initializing database..."); let data_dir = app.path().app_data_dir().unwrap_or_else(|_| std::path::PathBuf::from(".")); @@ -257,7 +259,7 @@ pub fn run() { db: database, auth, mcp, - shutdown_flag: shutdown_flag.clone(), + shutdown_flag: setup_flag, }); info!("Wardrobe app initialized, data dir: {:?}", data_dir); @@ -266,7 +268,7 @@ pub fn run() { .on_window_event(move |_window, event| { if let tauri::WindowEvent::Destroyed = event { info!("Window destroyed, shutting down gracefully..."); - shutdown_flag.store(true, Ordering::SeqCst); + event_flag.store(true, Ordering::SeqCst); } }) .invoke_handler(tauri::generate_handler![