Struct kernel::scheduler::priority::PrioritySched
source · pub struct PrioritySched { /* private fields */ }
Expand description
Priority scheduler based on the order of processes in the PROCESSES
array.
Implementations§
Trait Implementations§
source§impl<C: Chip> Scheduler<C> for PrioritySched
impl<C: Chip> Scheduler<C> for PrioritySched
source§fn next(&self) -> SchedulingDecision
fn next(&self) -> SchedulingDecision
Decide which process to run next. Read more
source§unsafe fn continue_process(&self, _: ProcessId, chip: &C) -> bool
unsafe fn continue_process(&self, _: ProcessId, chip: &C) -> bool
Ask the scheduler whether to continue trying to execute a process. Read more
source§fn result(&self, _: StoppedExecutingReason, _: Option<u32>)
fn result(&self, _: StoppedExecutingReason, _: Option<u32>)
Inform the scheduler of why the last process stopped executing, and how
long it executed for. Notably,
execution_time_us
will be None
if the the scheduler requested this process be run cooperatively.source§unsafe fn execute_kernel_work(&self, chip: &C)
unsafe fn execute_kernel_work(&self, chip: &C)
Tell the scheduler to execute kernel work such as interrupt bottom
halves and dynamic deferred calls. Most schedulers will use this default
implementation, but schedulers which at times wish to defer interrupt
handling will reimplement it. Read more
source§unsafe fn do_kernel_work_now(&self, chip: &C) -> bool
unsafe fn do_kernel_work_now(&self, chip: &C) -> bool
Ask the scheduler whether to take a break from executing userspace
processes to handle kernel tasks. Most schedulers will use this default
implementation, which always prioritizes kernel work, but schedulers
that wish to defer interrupt handling may reimplement it.
Auto Trait Implementations§
impl !Freeze for PrioritySched
impl !RefUnwindSafe for PrioritySched
impl !Send for PrioritySched
impl !Sync for PrioritySched
impl Unpin for PrioritySched
impl !UnwindSafe for PrioritySched
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