Struct async_shutdown::DelayShutdownToken
source · pub struct DelayShutdownToken<T: Clone> { /* private fields */ }
Expand description
Token that delays shutdown completion as long as it exists.
The token can be cloned and sent to different threads and tasks freely.
All clones must be dropped before the shutdown can complete.
Implementations§
source§impl<T: Clone> DelayShutdownToken<T>
impl<T: Clone> DelayShutdownToken<T>
sourcepub fn wrap_future<F: Future>(self, future: F) -> WrapDelayShutdown<T, F> ⓘ
pub fn wrap_future<F: Future>(self, future: F) -> WrapDelayShutdown<T, F> ⓘ
Wrap a future to delay shutdown completion until the wrapped future completes or until it is dropped.
This consumes the token to avoid keeping an unused token around by accident, which would delay shutdown indefinitely. If you wish to use the token multiple times, you can clone it first:
let future = delay_shutdown_token.clone().wrap_future(future);
The returned future transparently completes with the value of the wrapped future. However, the shutdown will not be considered complete until the future completes or is dropped.
Trait Implementations§
source§impl<T: Clone> Clone for DelayShutdownToken<T>
impl<T: Clone> Clone for DelayShutdownToken<T>
Auto Trait Implementations§
impl<T> Freeze for DelayShutdownToken<T>
impl<T> RefUnwindSafe for DelayShutdownToken<T>
impl<T> Send for DelayShutdownToken<T>where
T: Send,
impl<T> Sync for DelayShutdownToken<T>where
T: Send,
impl<T> Unpin for DelayShutdownToken<T>
impl<T> UnwindSafe for DelayShutdownToken<T>
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