pub struct MemoryOps {
ops: Option<Arc<dyn SharedMemoryOps + Send + Sync>>,
}Expand description
Shared memory operations that do not hold the underlying memory alive.
This handle is intended for operations, such as waking atomic waiters, that may be attempted after the original memory owner has started shutting down.
Fields§
§ops: Option<Arc<dyn SharedMemoryOps + Send + Sync>>Implementations§
Source§impl MemoryOps
impl MemoryOps
Sourcepub fn notify(
&self,
location: MemoryLocation,
count: u32,
) -> Result<u32, AtomicsError>
pub fn notify( &self, location: MemoryLocation, count: u32, ) -> Result<u32, AtomicsError>
Notify up to count waiters waiting for the memory location.
Sourcepub fn wait(
&self,
location: MemoryLocation,
timeout: Option<Duration>,
) -> Result<u32, AtomicsError>
pub fn wait( &self, location: MemoryLocation, timeout: Option<Duration>, ) -> Result<u32, AtomicsError>
Wait for the memory location to be notified.
Sourcepub fn disable_atomics(&self) -> Result<(), AtomicsError>
pub fn disable_atomics(&self) -> Result<(), AtomicsError>
Disable atomics for this memory if it is still alive.
All subsequent atomic wait calls will produce a trap.
Sourcepub fn wake_all_atomic_waiters(&self) -> Result<(), AtomicsError>
pub fn wake_all_atomic_waiters(&self) -> Result<(), AtomicsError>
Wake up all atomic waiters if the memory is still alive.
Trait Implementations§
Source§fn from(memory: SharedMemory) -> Self
fn from(memory: SharedMemory) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for MemoryOps
impl !RefUnwindSafe for MemoryOps
impl Send for MemoryOps
impl Sync for MemoryOps
impl Unpin for MemoryOps
impl UnsafeUnpin for MemoryOps
impl !UnwindSafe for MemoryOps
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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,
§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<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>
Converts
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>
Converts
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§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2where
T: SharedNiching<N1, N2>,
N1: Niching<T>,
N2: Niching<T>,
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2where
T: SharedNiching<N1, N2>,
N1: Niching<T>,
N2: Niching<T>,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Pointee for T
impl<T> Pointee for T
§impl<T> Upcastable for T
impl<T> Upcastable for T
§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref
§fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
upcast boxed dyn