This commit is contained in:
aozhiwei 2023-10-17 22:17:02 +08:00
parent 231be446d1
commit c1491eb18c

View File

@ -176,7 +176,20 @@ impl Timer {
(*v)(TimerEvent::Exec, None);
}
None => {
}
}
match self.running_timer.upgrade() {
Some(v) => {
match v.borrow().timer_type {
TimerType::Timeout => {
//self.internalDelete
}
TimerType::Interval => {
//self.internalModify
}
}
}
None => {
}
}
}
@ -231,6 +244,17 @@ impl Timer {
return Rc::downgrade(&t.borrow().wp);
}
fn internal_delete(&mut self, timer_wp: TimerWp, is_destory: bool) {
match timer_wp.upgrade() {
Some(v) => {
if Weak::ptr_eq(&self.running_timer, &Rc::downgrade(&v)) {
}
}
None => {
}
}
}
pub fn set_timeout(&mut self, time: i32, cb: TimerCb) -> TimerWp {
return self.internal_add(TimerType::Timeout, time, cb, None);
}
@ -264,7 +288,14 @@ impl Timer {
pub fn is_running(&self) {
}
pub fn delete(&mut self, _timer_wp: TimerWp) {
pub fn delete(&mut self, timer_wp: TimerWp) {
match timer_wp.upgrade() {
Some(v) => {
self.internal_delete(timer_wp, false);
}
None => {
}
}
}
pub fn reset(&mut self, _timer_wp: TimerWp) {
@ -281,7 +312,12 @@ impl Timer {
fn gc_timer(&mut self, e: TimerEvent, _args: Option<Vec<Rc::<dyn Any>>>) {
match e {
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();
self.free_timer_num -= 1;
}
}
TimerEvent::Custom(_v) => {