pub struct WaitOwned<K, V, Lock = DefaultMutex>where
K: PartialEq,
Lock: ScopedRawMutex,{ /* private fields */ }
Available on crate feature
alloc
only.Expand description
Future returned from WaitMap::wait_owned()
.
This is identical to the Wait
future, except that it takes an
Arc
reference to the WaitMap
, allowing the returned future to
live for the 'static
lifetime.
This future is fused, so once it has completed, any future calls to poll
will immediately return Poll::Ready
.
Notes
This future is !Unpin
, as it is unsafe to core::mem::forget
a
Wait
future once it has been polled. For instance, the following code
must not compile:
ⓘ
use maitake_sync::wait_map::WaitOwned;
// Calls to this function should only compile if `T` is `Unpin`.
fn assert_unpin<T: Unpin>() {}
assert_unpin::<WaitOwned<'_, usize, ()>>();
Trait Implementations§
§impl<K, V, Lock> Drop for WaitOwned<K, V, Lock>where
K: PartialEq,
Lock: ScopedRawMutex,
impl<K, V, Lock> Drop for WaitOwned<K, V, Lock>where
K: PartialEq,
Lock: ScopedRawMutex,
§impl<K, V, Lock> Future for WaitOwned<K, V, Lock>where
K: PartialEq,
Lock: ScopedRawMutex,
impl<K, V, Lock> Future for WaitOwned<K, V, Lock>where
K: PartialEq,
Lock: ScopedRawMutex,
impl<'pin, K, V, Lock> Unpin for WaitOwned<K, V, Lock>
Auto Trait Implementations§
impl<K, V, Lock = DefaultMutex> !RefUnwindSafe for WaitOwned<K, V, Lock>
impl<K, V, Lock> Send for WaitOwned<K, V, Lock>
impl<K, V, Lock = DefaultMutex> !Sync for WaitOwned<K, V, Lock>
impl<K, V, Lock = DefaultMutex> !UnwindSafe for WaitOwned<K, V, Lock>
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<F> IntoFuture for Fwhere
F: Future,
impl<F> IntoFuture for Fwhere
F: Future,
§type IntoFuture = F
type IntoFuture = F
Which kind of future are we turning this into?
source§fn into_future(self) -> <F as IntoFuture>::IntoFuture
fn into_future(self) -> <F as IntoFuture>::IntoFuture
Creates a future from a value. Read more