Struct Mutex

Source
pub struct Mutex { /* private fields */ }
Expand description

An analogue of std::sync::Mutex which can operate within shared memory.

Implementations§

Source§

impl Mutex

Source

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.

Source

pub unsafe fn from_handle( handle: MutexHandle, memory: SharedMemMap, ) -> Result<Self>

Establishes a new reference to a Mutex previously created with new_with_memory.

Source

pub fn lock(&self) -> LockResult<MutexGuard<'_>>

Acquires an exclusive lock on the Mutex, including any instances created from the same MutexHandle.

Source

pub fn handle(&self) -> Result<MutexHandle>

Creates a new handle to the Mutex that can be transmitted to other processes.

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.