From 30fc9dcc0abc6883d87fd506f1082c4cecfd925b Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 19 Oct 2023 22:22:15 +0800 Subject: [PATCH] 1 --- src/timer.rs | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/src/timer.rs b/src/timer.rs index cb8fce2..721fd09 100644 --- a/src/timer.rs +++ b/src/timer.rs @@ -78,11 +78,10 @@ impl Timer { self.get_tick_count = get_tick_count; self.cache_timer_num = cache_timer_num; self.free_timer_num = 0; - self.work_list = crate::ListHead::::new_head(); - /*self.traverse_timer_list( + self.traverse_timer_list( &mut |timer_list: &mut TimerListListHeadRp| { - timer_list = crate::ListHead::::new_head(); - });*/ + *timer_list = crate::ListHead::::new_head(); + }); self.timer_tick = (self.get_tick_count)(); { let self_wp = self.shared_from_self(); @@ -95,27 +94,18 @@ impl Timer { } } - fn traverse_timer_list(&mut self, cb: Box::) { - let init_timer_list = |tv: &mut [TimerListListHeadRp]| { + fn traverse_timer_list(&mut self, cb: &mut dyn FnMut (&mut TimerListListHeadRp)) { + (*cb)(&mut self.work_list); + let mut init_timer_list = |tv: &mut [TimerListListHeadRp]| { for i in 0..tv.len() { - //(*cb)(&mut self.work_list); - //(*cb)(&mut tv[i]); + (*cb)(&mut tv[i]); } }; - (*cb)(&mut self.work_list); - /* - match &mut cb { - Some(v) => { - (*v)(&mut self.work_list); - } - None => { - } - }*/ - //init_timer_list(&mut self.tv1); - /*init_timer_list(&mut self.tv2); + 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);*/ + init_timer_list(&mut self.tv5); } fn shared_from_self(&self) -> Rc::> {