fix(timer): optimize lock handling in add_task method

This commit is contained in:
Tunglies
2025-11-20 14:50:53 +08:00
parent 51a7b4fe75
commit 4c8673fcb2

View File

@@ -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);
}