diff --git a/src/kernel/async_task.rs b/src/kernel/async_task.rs index f372143c15e6a8a82d5cf630f3a3baa9f16c7ccb..cdc698cd2d92e65f22f4b6efab98c09496b379e1 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); }