From e148a5e329add10452d86ae8f2da97e545b7ecb2 Mon Sep 17 00:00:00 2001 From: Tianhao Wang Date: Tue, 11 Jun 2024 03:42:01 +0200 Subject: chore: cleanup sched code --- src/proc/sched.rs | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) (limited to 'src/proc') diff --git a/src/proc/sched.rs b/src/proc/sched.rs index 0bb155d..613336e 100644 --- a/src/proc/sched.rs +++ b/src/proc/sched.rs @@ -43,28 +43,24 @@ impl Scheduler { panic!("scheduler lock has been taken, something wrong"); } let mut lock_guard = SCHEDULER.lock(); - let t = lock_guard.run_queue.pop_front(); - match t { - None => { - panic!("run queue empty, how? what do I do??") - } - Some(next_tid) => { - let next_task = next_tid.get_task_ref_mut(); - let me = Task::current().unwrap(); - lock_guard.run_queue.push_back(next_tid); - if me.pid == next_task.pid { - return; - } - // make sure we release the scheduler lock before doing context - // swap - drop(lock_guard); - unsafe { - context_swap( - &(me.context) as *const _ as u64, - &(next_task.context) as *const _ as u64, - ); - } - } + let next_tid = lock_guard + .run_queue + .pop_front() + .expect("empty run queue, how?"); + let next_task = next_tid.get_task_ref_mut(); + let me = Task::current().unwrap(); + lock_guard.run_queue.push_back(next_tid); + if me.pid == next_task.pid { + return; + } + // make sure we release the scheduler lock before doing context + // swap + drop(lock_guard); + unsafe { + context_swap( + &(me.context) as *const _ as u64, + &(next_task.context) as *const _ as u64, + ); } } -- cgit v1.2.3-70-g09d2