Struct os::task::TASK_MANAGER
source · pub struct TASK_MANAGER {
__private_field: (),
}
Expand description
a TaskManager
global instance through lazy_static!
Fields§
§__private_field: ()
Methods from Deref<Target = TaskManager>§
sourcefn run_first_task(&self) -> !
fn run_first_task(&self) -> !
Run the first task in task list.
Generally, the first task in task list is an idle task (we call it zero process later). But in ch4, we load apps statically, so the first task is a real app.
sourcefn mark_current_suspended(&self)
fn mark_current_suspended(&self)
Change the status of current Running
task into Ready
.
sourcefn mark_current_exited(&self)
fn mark_current_exited(&self)
Change the status of current Running
task into Exited
.
sourcefn find_next_task(&self) -> Option<usize>
fn find_next_task(&self) -> Option<usize>
Find next task to run and return task id.
In this case, we only return the first Ready
task in task list.
sourcefn get_current_token(&self) -> usize
fn get_current_token(&self) -> usize
Get the current ‘Running’ task’s token.
sourcefn get_current_trap_cx(&self) -> &'static mut TrapContext
fn get_current_trap_cx(&self) -> &'static mut TrapContext
Get the current ‘Running’ task’s trap contexts.
sourcepub fn change_current_program_brk(&self, size: i32) -> Option<usize>
pub fn change_current_program_brk(&self, size: i32) -> Option<usize>
Change the current ‘Running’ task’s program break
sourcefn run_next_task(&self)
fn run_next_task(&self)
Switch current Running
task to the task we have found,
or there is no Ready
task and we can exit with all applications completed
Trait Implementations§
source§impl Deref for TASK_MANAGER
impl Deref for TASK_MANAGER
§type Target = TaskManager
type Target = TaskManager
The resulting type after dereferencing.
source§fn deref(&self) -> &TaskManager
fn deref(&self) -> &TaskManager
Dereferences the value.
impl LazyStatic for TASK_MANAGER
Auto Trait Implementations§
impl RefUnwindSafe for TASK_MANAGER
impl Send for TASK_MANAGER
impl Sync for TASK_MANAGER
impl Unpin for TASK_MANAGER
impl UnwindSafe for TASK_MANAGER
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more