diff --git a/r9/src/listheadlock.rs b/r9/src/listheadlock.rs index 6c5a3d5..5a673f7 100644 --- a/r9/src/listheadlock.rs +++ b/r9/src/listheadlock.rs @@ -47,7 +47,7 @@ impl ListHeadLock { } pub fn del_init(&mut self) { - self.next.upgrade().unwrap().lock().unwrap()._self_wp = self.prev.clone(); + self.next.upgrade().unwrap().lock().unwrap().prev = self.prev.clone(); self.prev.upgrade().unwrap().lock().unwrap().next = self.next.clone(); self.init(); } diff --git a/r9/src/queuelock.rs b/r9/src/queuelock.rs index 01035b0..61f3cbe 100644 --- a/r9/src/queuelock.rs +++ b/r9/src/queuelock.rs @@ -34,11 +34,12 @@ impl QueueLock { crate::ListHeadLock::::add_tail(&self.msg_list.lock().unwrap(), node); } - pub fn fetch(&self) { + pub fn fetch(&self) -> &Self { if !self.msg_list.lock().unwrap().lock().unwrap().empty() && self.work_list.lock().unwrap().lock().unwrap().empty() { crate::ListHeadLock::replace_init(&self.msg_list.lock().unwrap(), &self.work_list.lock().unwrap()); } + return self } pub fn empty(&self) -> bool {