pub struct ForegroundExecutor { /* private fields */ }Expand description
A pointer to the executor that is currently running, for spawning tasks on the main thread.
Implementations§
Source§impl ForegroundExecutor
impl ForegroundExecutor
Sourcepub fn new(dispatcher: Arc<dyn PlatformDispatcher>) -> Self
pub fn new(dispatcher: Arc<dyn PlatformDispatcher>) -> Self
Creates a new ForegroundExecutor from the given PlatformDispatcher.
Sourcepub fn spawn<R>(&self, future: impl Future<Output = R> + 'static) -> Task<R> ⓘwhere
R: 'static,
pub fn spawn<R>(&self, future: impl Future<Output = R> + 'static) -> Task<R> ⓘwhere
R: 'static,
Enqueues the given Task to run on the main thread.
Sourcepub fn spawn_with_priority<R>(
&self,
_priority: Priority,
future: impl Future<Output = R> + 'static,
) -> Task<R> ⓘwhere
R: 'static,
pub fn spawn_with_priority<R>(
&self,
_priority: Priority,
future: impl Future<Output = R> + 'static,
) -> Task<R> ⓘwhere
R: 'static,
Enqueues the given Task to run on the main thread with the given priority.
Sourcepub fn spawn_when_idle<R>(
&self,
timeout: Option<Duration>,
future: impl Future<Output = R> + 'static,
) -> Task<R> ⓘwhere
R: 'static,
pub fn spawn_when_idle<R>(
&self,
timeout: Option<Duration>,
future: impl Future<Output = R> + 'static,
) -> Task<R> ⓘwhere
R: 'static,
On platforms with dedicated support, enqueues the given future to run
on the main thread during platform idle time. Without a timeout,
polls may be deferred indefinitely while the platform stays busy;
with one, a poll still waiting after that long runs as ordinary main-thread work.
Each poll occupies part of one idle slice, so long synchronous stretches
should bound themselves against Self::idle_time_remaining and yield.
On platforms without dedicated support, schedules the given future to run
with a low priority, ignoring timeout.
Sourcepub fn idle_time_remaining(&self) -> Option<Duration>
pub fn idle_time_remaining(&self) -> Option<Duration>
The time remaining in the current idle slice, when called from a task
spawned via Self::spawn_when_idle on a platform that meters idle
time. None when idle time is unmetered (or the caller is not inside
an idle slice); work that must bound itself should then fall back to a
budget of its own.
Trait Implementations§
Source§impl Clone for ForegroundExecutor
impl Clone for ForegroundExecutor
Source§fn clone(&self) -> ForegroundExecutor
fn clone(&self) -> ForegroundExecutor
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for ForegroundExecutor
impl !Send for ForegroundExecutor
impl !Sync for ForegroundExecutor
impl !UnwindSafe for ForegroundExecutor
impl Freeze for ForegroundExecutor
impl Unpin for ForegroundExecutor
impl UnsafeUnpin for ForegroundExecutor
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more