Update task public APIs.

pull/15/head
Yifan Wu 5 years ago
parent a80f71ac4c
commit 5e7a10477c

@ -1,18 +1,15 @@
use crate::task::{
mark_current_suspended,
mark_current_exited,
run_next_task
suspend_current_and_run_next,
exit_current_and_run_next,
};
pub fn sys_exit(exit_code: i32) -> ! {
println!("[kernel] Application exited with code {}", exit_code);
mark_current_exited();
run_next_task();
exit_current_and_run_next();
panic!("Unreachable in sys_exit!");
}
pub fn sys_yield() -> isize {
mark_current_suspended();
run_next_task();
suspend_current_and_run_next();
0
}

@ -103,14 +103,24 @@ pub fn run_first_task() {
TASK_MANAGER.run_first_task();
}
pub fn run_next_task() {
fn run_next_task() {
TASK_MANAGER.run_next_task();
}
pub fn mark_current_suspended() {
fn mark_current_suspended() {
TASK_MANAGER.mark_current_suspended();
}
pub fn mark_current_exited() {
fn mark_current_exited() {
TASK_MANAGER.mark_current_exited();
}
pub fn suspend_current_and_run_next() {
mark_current_suspended();
run_next_task();
}
pub fn exit_current_and_run_next() {
mark_current_exited();
run_next_task();
}
Loading…
Cancel
Save