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

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);

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]);

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;

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