Add MutexBlocking.
This commit is contained in:
parent
8974a29245
commit
db6a93e60d
11 changed files with 119 additions and 13 deletions
|
@ -52,6 +52,15 @@ pub fn suspend_current_and_run_next() {
|
|||
schedule(task_cx_ptr);
|
||||
}
|
||||
|
||||
pub fn block_current_and_run_next() {
|
||||
let task = take_current_task().unwrap();
|
||||
let mut task_inner = task.inner_exclusive_access();
|
||||
let task_cx_ptr = &mut task_inner.task_cx as *mut TaskContext;
|
||||
task_inner.task_status = TaskStatus::Blocking;
|
||||
drop(task_inner);
|
||||
schedule(task_cx_ptr);
|
||||
}
|
||||
|
||||
pub fn exit_current_and_run_next(exit_code: i32) {
|
||||
let task = take_current_task().unwrap();
|
||||
let mut task_inner = task.inner_exclusive_access();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue