fix: shutdown_flag 闭包借用/移动冲突(E0373/E0505)
Android Build & Publish / build-android (push) Successful in 56m9s
Docker Build and Push / build-image (push) Successful in 2m22s

setup 闭包借用 shutdown_flag 但要求 'static, on_window_event 又要 move
它。builder 链前各自 clone 出 setup_flag/event_flag, 两处闭包分别 move。
This commit is contained in:
jif2.zhang
2026-09-14 15:37:02 +08:00
parent ec508423b5
commit 65b7fbcd13
+5 -3
View File
@@ -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![