Struct CoreExecutor

Source
pub struct CoreExecutor { /* private fields */ }
Expand description

A CoreExecutor is the most simple executor provided. It runs a single thread, which is responsible for both scheduling the function (registering the timer for the wakeup), and the actual execution. The executor will stop once dropped. The CoreExecutor can be cloned to generate a new reference to the same underlying executor. Given the single threaded nature of this executor, tasks are executed sequentially, and a long running task will cause delay in other subsequent executions.

Implementations§

Source§

impl CoreExecutor

Source

pub fn new() -> Result<CoreExecutor, Error>

Creates a new CoreExecutor.

Source

pub fn with_name(thread_name: &str) -> Result<CoreExecutor, Error>

Creates a new CoreExecutor with the specified thread name.

Source

pub fn schedule_fixed_interval<F>( &self, initial: Duration, interval: Duration, scheduled_fn: F, ) -> TaskHandle
where F: Fn(&Handle) + Send + 'static,

Schedule a function for running at fixed intervals. The executor will try to run the function every interval, but if one execution takes longer than interval it will delay all the subsequent calls.

Source

pub fn schedule_fixed_rate<F>( &self, initial: Duration, interval: Duration, scheduled_fn: F, ) -> TaskHandle
where F: Fn(&Handle) + Send + 'static,

Schedule a function for running at fixed rate. The executor will try to run the function every interval, and if a task execution takes longer than interval, the wait time between task will be reduced to decrease the overall delay.

Trait Implementations§

Source§

impl Clone for CoreExecutor

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl TaskGroupScheduler for CoreExecutor

Source§

fn schedule<T: TaskGroup>( &self, task_group: T, initial: Duration, interval: Duration, ) -> Arc<T>

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.