From 873e1044692f7f871385dc3d94f6852dcdd5dcac Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 23 Oct 2023 22:04:23 +0800 Subject: [PATCH] 1 --- src/timer.rs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/timer.rs b/src/timer.rs index 68f5c46..61c9d6b 100644 --- a/src/timer.rs +++ b/src/timer.rs @@ -178,17 +178,23 @@ impl Timer { while !cascade_list.borrow().empty() { let timer = &cascade_list.borrow().first_entry().upgrade().unwrap(); timer.borrow_mut().timer_entry.borrow_mut().del_init(); - + self.internal_add2(timer); } } - return 0; + return index; + } + + fn get_timer_index(&self, index : usize) -> usize { + return ((self.timer_tick as usize) >> (TVR_BITS + index * TVN_BITS)) & + TVN_MASK; } pub fn update(&mut self) { - while (self.get_tick_count)() >= self.timer_tick { + let tick = (self.get_tick_count)(); + while tick >= self.timer_tick { let index = (self.timer_tick & (TVR_MASK as i64)) as usize; - if index == 0 { - + if index == 0 && + self.cascade(&mut self.tv2, self.get_timer_index(0)) == 0 { } self.timer_tick += 1; @@ -336,7 +342,7 @@ impl Timer { } pub fn get_idle_time(&self) -> i64 { - let mut idle_time = 0; + let idle_time = 0; return idle_time; }