1
This commit is contained in:
parent
231be446d1
commit
c1491eb18c
42
src/timer.rs
42
src/timer.rs
@ -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) => {
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user