From 4c8673fcb27fa9f66f9c4132b7480920811fd0fb Mon Sep 17 00:00:00 2001 From: Tunglies <77394545+Tunglies@users.noreply.github.com> Date: Thu, 20 Nov 2025 14:50:53 +0800 Subject: [PATCH] fix(timer): optimize lock handling in add_task method --- src-tauri/src/core/timer.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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); }