From 10e62118208fa7354f3fd623bf12ddcd1dcb45a4 Mon Sep 17 00:00:00 2001 From: Stefan Hacker Date: Sat, 11 Apr 2026 23:42:28 +0200 Subject: [PATCH] fix: Rust MutexGuard ueber await - delta_sync Send-Fehler MutexGuard wird jetzt vor dem .await gedroppt (take + put back), damit der Future Send-kompatibel ist wie Tauri es erfordert. Co-Authored-By: Claude Opus 4.6 (1M context) --- clients/desktop/src-tauri/src/lib.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/clients/desktop/src-tauri/src/lib.rs b/clients/desktop/src-tauri/src/lib.rs index d3c9f3d..0515f1e 100644 --- a/clients/desktop/src-tauri/src/lib.rs +++ b/clients/desktop/src-tauri/src/lib.rs @@ -59,9 +59,15 @@ async fn start_sync(state: State<'_, AppState>) -> Result, String> { #[tauri::command] async fn delta_sync(state: State<'_, AppState>) -> Result, String> { - let mut engine_guard = state.sync_engine.lock().unwrap(); - let engine = engine_guard.as_mut().ok_or("Sync nicht gestartet")?; - engine.delta_sync().await + // Extract engine from state, dropping the MutexGuard before .await + let mut engine = { + let mut guard = state.sync_engine.lock().unwrap(); + guard.take().ok_or("Sync nicht gestartet")? + }; + let result = engine.delta_sync().await; + // Put engine back + *state.sync_engine.lock().unwrap() = Some(engine); + result } #[tauri::command]