From debcd8547925616cc9514dfaeb06ed48a2fee99c Mon Sep 17 00:00:00 2001 From: moce0627 <491745115@qq.com> Date: Sun, 18 Jun 2023 12:23:28 +0800 Subject: [PATCH] fix: incorrect use of drain_filter --- src/kernel/async_task.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/kernel/async_task.rs b/src/kernel/async_task.rs index f372143..cdc698c 100644 --- a/src/kernel/async_task.rs +++ b/src/kernel/async_task.rs @@ -154,9 +154,9 @@ impl FairQueue { self.len -= 1; res } - None => panic!(""), + None => None, }, - None => panic!("front: queue empty"), + None => None, } } @@ -164,9 +164,9 @@ impl FairQueue { match self.queue.front() { Some(owner) => match self.map.get(owner) { Some(sub_queue) => sub_queue.front(), - None => panic!(""), + None => None, }, - None => panic!("front: queue empty"), + None => None, } } @@ -174,7 +174,7 @@ impl FairQueue { match self.map.remove(&owner) { Some(sub_queue) => { self.len -= sub_queue.len(); - self.queue = self.queue.drain_filter(|x| *x == owner).collect(); + self.queue.drain_filter(|x| *x == owner); } None => {} } @@ -517,11 +517,6 @@ pub fn remove_async_used_info(vm_id: usize) { pub fn remove_vm_async_task(vm_id: usize) { let mut io_list = ASYNC_IO_TASK_LIST.lock(); let mut ipi_list = ASYNC_IPI_TASK_LIST.lock(); - // io_list.retain(|x| x.src_vmid != vm_id); - // ipi_list.retain(|x| x.src_vmid != vm_id); - // *io_list = io_list.drain_filter(|x| x.src_vmid == vm_id).collect::>(); io_list.remove(vm_id); - *ipi_list = ipi_list - .drain_filter(|x| x.src_vmid == vm_id) - .collect::>(); + ipi_list.drain_filter(|x| x.src_vmid == vm_id); } -- Gitee