pub struct Mutex { /* private fields */ }Expand description
An analogue of std::sync::Mutex which can operate within shared memory.
Implementations§
Source§impl Mutex
impl Mutex
Sourcepub unsafe fn new_with_memory(
memory: SharedMemMap,
offset: usize,
) -> Result<Self>
pub unsafe fn new_with_memory( memory: SharedMemMap, offset: usize, ) -> Result<Self>
Creates a brand new Mutex in the given shared memory location.
This can only be used to create a brand new Mutex. It cannot be used to create a handle to an
existing Mutex already created at the given location in shared memory. To send the Mutex to another
process you must send the shared memory region and a MutexHandle produced via the handle() function.
§Panics
This function will panic if there is not MUTEX_SHM_SIZE bytes of memory available at the
given offset, or if the memory is not aligned to a pointer width within the shared memory section.
Sourcepub unsafe fn from_handle(
handle: MutexHandle,
memory: SharedMemMap,
) -> Result<Self>
pub unsafe fn from_handle( handle: MutexHandle, memory: SharedMemMap, ) -> Result<Self>
Establishes a new reference to a Mutex previously created with new_with_memory.
Sourcepub fn lock(&self) -> LockResult<MutexGuard<'_>>
pub fn lock(&self) -> LockResult<MutexGuard<'_>>
Acquires an exclusive lock on the Mutex, including any instances created from the same
MutexHandle.
Sourcepub fn handle(&self) -> Result<MutexHandle>
pub fn handle(&self) -> Result<MutexHandle>
Creates a new handle to the Mutex that can be transmitted to other processes.