From 7cee6d5f61723819a6493ab5cb93a4ab2e4176e3 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 9 Oct 2023 10:42:14 +0800 Subject: [PATCH] 1 --- src/timer.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/timer.rs b/src/timer.rs index e864cbd..5f29825 100644 --- a/src/timer.rs +++ b/src/timer.rs @@ -31,7 +31,7 @@ impl Default for TimerType { } #[derive(Default)] -pub struct TimerList { +struct TimerList { holder: Rc::>, wp: Rc::>>, timer_entry: Rc::>>, @@ -89,12 +89,12 @@ impl Timer { } fn new_timer_list(&mut self) -> Rc::> { - let p: Rc::>; - p = self.free_timer_list.borrow().first_entry().upgrade().unwrap(); - if Rc::weak_count(&p.borrow().wp) > 0 { - p.borrow_mut().wp = Rc::new(p.borrow().holder.clone()); - } + let mut p: Rc::>; if self.free_timer_list.borrow().empty() { + p = self.free_timer_list.borrow().first_entry().upgrade().unwrap(); + if Rc::weak_count(&p.borrow().wp) > 0 { + p.borrow_mut().wp = Rc::new(p.borrow().holder.clone()); + } } else { p = Rc::new(RefCell::new(TimerList{ holder: Default::default(),