1
This commit is contained in:
parent
c1491eb18c
commit
389f5a06ce
36
src/timer.rs
36
src/timer.rs
@ -75,25 +75,21 @@ impl Timer {
|
|||||||
get_tick_count: fn () -> i64,
|
get_tick_count: fn () -> i64,
|
||||||
gctime: i32,
|
gctime: i32,
|
||||||
cache_timer_num: 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.get_tick_count = get_tick_count;
|
||||||
self.cache_timer_num = cache_timer_num;
|
self.cache_timer_num = cache_timer_num;
|
||||||
self.free_timer_num = 0;
|
self.free_timer_num = 0;
|
||||||
self.work_list = crate::ListHead::<TimerList>::new_head();
|
self.work_list = crate::ListHead::<TimerList>::new_head();
|
||||||
for i in 0..self.tv1.len() {
|
init_timer_list(&mut self.tv1);
|
||||||
self.tv1[i] = crate::ListHead::<TimerList>::new_head();
|
init_timer_list(&mut self.tv2);
|
||||||
}
|
init_timer_list(&mut self.tv3);
|
||||||
for i in 0..self.tv2.len() {
|
init_timer_list(&mut self.tv4);
|
||||||
self.tv2[i] = crate::ListHead::<TimerList>::new_head();
|
init_timer_list(&mut self.tv5);
|
||||||
}
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
self.timer_tick = (self.get_tick_count)();
|
self.timer_tick = (self.get_tick_count)();
|
||||||
let self_wp = self.shared_from_self();
|
let self_wp = self.shared_from_self();
|
||||||
let cb = Box::new(
|
let cb = Box::new(
|
||||||
@ -306,7 +302,8 @@ impl Timer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_idle_time(&self) -> i64 {
|
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>>>) {
|
fn gc_timer(&mut self, e: TimerEvent, _args: Option<Vec<Rc::<dyn Any>>>) {
|
||||||
@ -314,13 +311,10 @@ impl Timer {
|
|||||||
TimerEvent::Exec => {
|
TimerEvent::Exec => {
|
||||||
while self.free_timer_num > self.cache_timer_num &&
|
while self.free_timer_num > self.cache_timer_num &&
|
||||||
!self.free_timer_list.borrow().empty() {
|
!self.free_timer_list.borrow().empty() {
|
||||||
let timer = &self.free_timer_list.borrow().first_entry();
|
let timer = &self.free_timer_list.borrow().first_entry().upgrade().unwrap();
|
||||||
timer.upgrade().unwrap().borrow_mut().timer_entry.borrow_mut().del_init();
|
timer.borrow_mut().timer_entry.borrow_mut().del_init();
|
||||||
self.free_timer_num -= 1;
|
self.free_timer_num -= 1;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
TimerEvent::Custom(_v) => {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user