Trait shared_memory::SharedMemLockable
[−]
[src]
pub trait SharedMemLockable { fn rlock<D: SharedMemCast>(&self) -> Result<ReadLockGuard<D>, Box<Error>>; fn rlock_as_slice<D: SharedMemCast>(
&self
) -> Result<ReadLockGuardSlice<D>, Box<Error>>; fn wlock<D: SharedMemCast>(
&mut self
) -> Result<WriteLockGuard<D>, Box<Error>>; fn wlock_as_slice<D: SharedMemCast>(
&mut self
) -> Result<WriteLockGuardSlice<D>, Box<Error>>; }
This trait is implemented by SharedMem
Required Methods
fn rlock<D: SharedMemCast>(&self) -> Result<ReadLockGuard<D>, Box<Error>>
Returns a read lock to the shared memory
Examples
//let some_val: ReadLockGuard<u8> = my_shmem.rlock().unwrap(); let some_val = my_shmem.rlock::<u8>().unwrap(); println!("I can read a shared u8 ! {}", *some_val);
fn rlock_as_slice<D: SharedMemCast>(
&self
) -> Result<ReadLockGuardSlice<D>, Box<Error>>
&self
) -> Result<ReadLockGuardSlice<D>, Box<Error>>
Returns a read lock to the shared memory as a slice
Examples
//let read_buf: ReadLockGuardSlice<u8> = my_shmem.rlock_as_slice().unwrap(); let read_buf = my_shmem.rlock_as_slice::<u8>().unwrap(); println!("I'm reading into a u8 from a shared &[u8] ! : {}", read_buf[0]);
fn wlock<D: SharedMemCast>(&mut self) -> Result<WriteLockGuard<D>, Box<Error>>
Returns a read/write lock to the shared memory
Examples
//let mut some_val: WriteLockGuard<u32> = my_shmem.wlock().unwrap(); let mut some_val = my_shmem.wlock::<u32>().unwrap(); *(*some_val) = 1;
fn wlock_as_slice<D: SharedMemCast>(
&mut self
) -> Result<WriteLockGuardSlice<D>, Box<Error>>
&mut self
) -> Result<WriteLockGuardSlice<D>, Box<Error>>
Returns a read/write access to a &mut [T] on the shared memory
Examples
//let write_buf: WriteLockGuardSlice<u8> = my_shmem.wlock_as_slice().unwrap(); let write_buf = my_shmem.wlock_as_slice::<u8>().unwrap(); write_buf[0] = 0x1;
Implementors
impl<'a> SharedMemLockable for SharedMem<'a>