diff --git a/src-tauri/src/core/timer.rs b/src-tauri/src/core/timer.rs index 6905837ff..c2198518d 100644 --- a/src-tauri/src/core/timer.rs +++ b/src-tauri/src/core/timer.rs @@ -252,14 +252,13 @@ impl Timer { } // Locks are dropped here // Now perform async operations without holding locks + let delay_timer = self.delay_timer.write(); + let mut timer_map = self.timer_map.write(); for (uid, tid, interval) in operations_to_add { - // Re-acquire locks for individual operations - let delay_timer = self.delay_timer.write(); if let Err(e) = self.add_task(&delay_timer, uid.clone(), tid, interval) { logging_error!(Type::Timer, "Failed to add task for uid {}: {}", uid, e); - // Rollback on failure - remove from timer_map - self.timer_map.write().remove(&uid); + timer_map.remove(&uid); } else { logging!(debug, Type::Timer, "Added task {} for uid {}", tid, uid); }