Scheduler

Struct Scheduler 

Source
pub struct Scheduler<const N: usize> {
    edf: RbTree<RtTree, UId>,
}

Fields§

§edf: RbTree<RtTree, UId>

Implementations§

Source§

impl<const N: usize> Scheduler<N>

Source

pub const fn new() -> Self

Source

pub fn enqueue( &mut self, uid: UId, now: u64, storage: &mut ViewMut<'_, UId, RtServer, BitReclaimMap<UId, Thread, N>>, ) -> Result<(), Error>

Source

pub fn put( &mut self, uid: UId, dt: u64, storage: &mut ViewMut<'_, UId, RtServer, BitReclaimMap<UId, Thread, N>>, ) -> Option<u64>

This should be called on each do_schedule call, to update the internal scheduler state. If this function returns Some(u64) it means the current thread has exhausted its budget and should be throttled until the returned timestamp.

Source

pub fn pick( &mut self, storage: &mut ViewMut<'_, UId, RtServer, BitReclaimMap<UId, Thread, N>>, ) -> Option<(UId, u32)>

Source

pub fn dequeue( &mut self, uid: UId, storage: &mut ViewMut<'_, UId, RtServer, BitReclaimMap<UId, Thread, N>>, ) -> Result<(), Error>

Auto Trait Implementations§

§

impl<const N: usize> Freeze for Scheduler<N>

§

impl<const N: usize> RefUnwindSafe for Scheduler<N>

§

impl<const N: usize> Send for Scheduler<N>

§

impl<const N: usize> Sync for Scheduler<N>

§

impl<const N: usize> Unpin for Scheduler<N>

§

impl<const N: usize> UnwindSafe for Scheduler<N>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> ThreadArgument for T
where T: Send + 'static,