This commit is contained in:
aozhiwei 2023-10-19 21:08:21 +08:00
parent c1491eb18c
commit 389f5a06ce

View File

@ -75,25 +75,21 @@ impl Timer {
get_tick_count: fn () -> i64,
gctime: i32,
cache_timer_num: i32) {
let init_timer_list = |tv: &mut [TimerListListHeadRp]| {
for i in 0..tv.len() {
tv[i] = crate::ListHead::<TimerList>::new_head();
}
};
self.get_tick_count = get_tick_count;
self.cache_timer_num = cache_timer_num;
self.free_timer_num = 0;
self.work_list = crate::ListHead::<TimerList>::new_head();
for i in 0..self.tv1.len() {
self.tv1[i] = crate::ListHead::<TimerList>::new_head();
}
for i in 0..self.tv2.len() {
self.tv2[i] = crate::ListHead::<TimerList>::new_head();
}
for i in 0..self.tv3.len() {
self.tv3[i] = crate::ListHead::<TimerList>::new_head();
}
for i in 0..self.tv4.len() {
self.tv4[i] = crate::ListHead::<TimerList>::new_head();
}
for i in 0..self.tv5.len() {
self.tv5[i] = crate::ListHead::<TimerList>::new_head();
}
init_timer_list(&mut self.tv1);
init_timer_list(&mut self.tv2);
init_timer_list(&mut self.tv3);
init_timer_list(&mut self.tv4);
init_timer_list(&mut self.tv5);
self.timer_tick = (self.get_tick_count)();
let self_wp = self.shared_from_self();
let cb = Box::new(
@ -306,7 +302,8 @@ impl Timer {
}
pub fn get_idle_time(&self) -> i64 {
return 0;
let mut idle_time = 0;
return idle_time;
}
fn gc_timer(&mut self, e: TimerEvent, _args: Option<Vec<Rc::<dyn Any>>>) {
@ -314,13 +311,10 @@ impl Timer {
TimerEvent::Exec => {
while self.free_timer_num > self.cache_timer_num &&
!self.free_timer_list.borrow().empty() {
let timer = &self.free_timer_list.borrow().first_entry();
timer.upgrade().unwrap().borrow_mut().timer_entry.borrow_mut().del_init();
let timer = &self.free_timer_list.borrow().first_entry().upgrade().unwrap();
timer.borrow_mut().timer_entry.borrow_mut().del_init();
self.free_timer_num -= 1;
}
}
TimerEvent::Custom(_v) => {
}
_ => {