pub struct CurrentDispatcher;Expand description
A placeholder for the currently active dispatcher. Use
GetAsyncDispatcher::get_async_dispatcher to access it when needed.
Implementations§
Source§impl CurrentDispatcher
impl CurrentDispatcher
Sourcepub unsafe fn set(dispatcher: &impl AsAsyncDispatcherRef)
pub unsafe fn set(dispatcher: &impl AsAsyncDispatcherRef)
Sets the currently active dispatcher for this thread.
§Safety
The caller must ensure that the dispatcher they set will be alive until it is Self::unset
or Self::set to another value. Using Self::with is a safer way to use this api as
it will use the current execution stack to ensure that it is properly unset.
Sourcepub fn with<R>(
dispatcher: &impl AsAsyncDispatcherRef,
f: impl FnOnce() -> R,
) -> R
pub fn with<R>( dispatcher: &impl AsAsyncDispatcherRef, f: impl FnOnce() -> R, ) -> R
Runs the passed function with the current dispatcher set to the one passed in, and then re-sets the dispatcher to whatever it was before.
Trait Implementations§
Source§impl Clone for CurrentDispatcher
impl Clone for CurrentDispatcher
Source§fn clone(&self) -> CurrentDispatcher
fn clone(&self) -> CurrentDispatcher
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CurrentDispatcher
impl Debug for CurrentDispatcher
Source§impl Default for CurrentDispatcher
impl Default for CurrentDispatcher
Source§fn default() -> CurrentDispatcher
fn default() -> CurrentDispatcher
Returns the “default value” for a type. Read more
Source§impl GetAsyncDispatcher for CurrentDispatcher
impl GetAsyncDispatcher for CurrentDispatcher
Source§fn try_get_async_dispatcher(&self) -> Option<AsyncDispatcher>
fn try_get_async_dispatcher(&self) -> Option<AsyncDispatcher>
Returns a refcounted handle to the active dispatcher for this object, if there is one.
Some types of dispatchers (like for the current dispatcher of a thread) may not always have
an active dispatcher, so it is returned as an option.
Source§fn get_async_dispatcher(&self) -> AsyncDispatcher
fn get_async_dispatcher(&self) -> AsyncDispatcher
Returns a refcounted handle to the active dispatcher for this object. Read more
Source§impl PartialEq for CurrentDispatcher
impl PartialEq for CurrentDispatcher
Source§fn eq(&self, other: &CurrentDispatcher) -> bool
fn eq(&self, other: &CurrentDispatcher) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for CurrentDispatcher
impl StructuralPartialEq for CurrentDispatcher
Auto Trait Implementations§
impl Freeze for CurrentDispatcher
impl RefUnwindSafe for CurrentDispatcher
impl Send for CurrentDispatcher
impl Sync for CurrentDispatcher
impl Unpin for CurrentDispatcher
impl UnsafeUnpin for CurrentDispatcher
impl UnwindSafe for CurrentDispatcher
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<D> OnDispatcher for D
impl<D> OnDispatcher for D
Source§fn on_dispatcher<R>(
&self,
f: impl FnOnce(Option<AsyncDispatcherRef<'_>>) -> R,
) -> R
fn on_dispatcher<R>( &self, f: impl FnOnce(Option<AsyncDispatcherRef<'_>>) -> R, ) -> R
Runs the function
f with a lifetime-bound AsyncDispatcherRef for this object’s dispatcher.
If the dispatcher is no longer valid, the callback will be given None. Read moreSource§fn on_maybe_dispatcher<R, E>(
&self,
f: impl FnOnce(AsyncDispatcherRef<'_>) -> Result<R, E>,
) -> Result<R, E>
fn on_maybe_dispatcher<R, E>( &self, f: impl FnOnce(AsyncDispatcherRef<'_>) -> Result<R, E>, ) -> Result<R, E>
Helper version of
OnDispatcher::on_dispatcher that translates an invalidated dispatcher
handle into a Status::BAD_STATE error instead of giving the callback None. Read moreSource§fn spawn(
&self,
future: impl Future<Output = ()> + Send + 'static,
) -> JoinHandle<()> ⓘwhere
D: 'static,
fn spawn(
&self,
future: impl Future<Output = ()> + Send + 'static,
) -> JoinHandle<()> ⓘwhere
D: 'static,
Spawn an asynchronous task on this dispatcher. If this returns
Ok then the task has
successfully been scheduled and will run or be cancelled and dropped when the dispatcher
shuts down. The returned future’s result will be Ok if the future completed
successfully, or an Err if the task did not complete for some reason (like the
dispatcher shut down). Read more