diff --git a/src/listhead.rs b/src/listhead.rs index df947c6..fc31ada 100644 --- a/src/listhead.rs +++ b/src/listhead.rs @@ -53,8 +53,7 @@ impl ListHead { return self.next.ptr_eq(&self.prev); } - pub fn add_tail(&self, - pnew: &Rc::>>) { + pub fn add_tail(&self, pnew: &Rc::>) { /* let prev = &mut head.borrow_mut().prev; let next = Rc::downgrade(head); @@ -71,12 +70,12 @@ impl ListHead { return self.next.upgrade().unwrap().borrow().data(); } - pub fn replace_init(head: &Rc::>>, - pnew: &mut Rc::>>) { + pub fn replace_init(&self, pnew: &mut Rc::>) { + /* pnew.borrow_mut().next = head.borrow_mut().next.clone(); pnew.borrow_mut().next.upgrade().unwrap().borrow_mut().prev = Rc::downgrade(pnew); pnew.borrow_mut().prev = head.borrow_mut().prev.clone(); - head.borrow_mut().init(); + head.borrow_mut().init();*/ } pub fn for_each(&self, cb: fn (&Weak::>) -> bool) { diff --git a/src/timer.rs b/src/timer.rs index 93b454a..611ea7a 100644 --- a/src/timer.rs +++ b/src/timer.rs @@ -211,11 +211,7 @@ impl Timer { } if !tv[index].borrow().empty() { let mut cascade_list = crate::ListHead::::new_head(); - crate::ListHead::::replace_init - ( - &mut tv[index], - &mut cascade_list - ); + tv[index].borrow().replace_init(&mut cascade_list); while !cascade_list.borrow().empty() { let timer = &cascade_list.borrow().first_entry().upgrade().unwrap(); timer.borrow_mut().timer_entry.borrow_mut().del_init(); @@ -241,11 +237,7 @@ impl Timer { } self.timer_tick += 1; - crate::ListHead::::replace_init - ( - &mut self.work_list, - &mut self.tv1[index] - ); + self.work_list.borrow().replace_init(&mut self.tv1[index]); while !self.work_list.borrow().empty() { let timer = &self.work_list.borrow().first_entry(); self.running_timer = timer.clone();