scheduler

Enum Scheduler

source
pub enum Scheduler<HostType: Host> {
    ThreadPerHost(ThreadPerHostSched<HostType>),
    ThreadPerCore(ThreadPerCoreSched<HostType>),
}
Expand description

A wrapper for different host schedulers. It would have been nice to make this a trait, but would require support for GATs.

Variants§

§

ThreadPerHost(ThreadPerHostSched<HostType>)

§

ThreadPerCore(ThreadPerCoreSched<HostType>)

Implementations§

source§

impl<HostType: Host> Scheduler<HostType>

source

pub fn parallelism(&self) -> usize

The maximum number of threads that will ever be run in parallel. The number of threads created by the scheduler may be higher.

source

pub fn scope<'scope>( &'scope mut self, f: impl for<'a, 'b> FnOnce(SchedulerScope<'a, 'b, 'scope, HostType>) + 'scope, )

Create a scope for any task run on the scheduler. The current thread will block at the end of the scope until the task has completed.

source

pub fn join(self)

Join all threads started by the scheduler.

Auto Trait Implementations§

§

impl<HostType> Freeze for Scheduler<HostType>

§

impl<HostType> !RefUnwindSafe for Scheduler<HostType>

§

impl<HostType> Send for Scheduler<HostType>

§

impl<HostType> Sync for Scheduler<HostType>

§

impl<HostType> Unpin for Scheduler<HostType>

§

impl<HostType> !UnwindSafe for Scheduler<HostType>

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> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
source§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.