shared-mem-queue 0.4.0

Single-writer single-reader queues which can be used for inter-processor-communication in a shared memory region
Documentation
mod shm;

use shared_mem_queue::byte_queue::ByteQueue;
use shm::ShmHandle;

use libc::O_RDWR;

const SHM_CW_RR: &str = "shm_byte_queue";
const SHM_CW_RR_SIZE: usize = 128;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut shm_handle = ShmHandle::new(SHM_CW_RR, SHM_CW_RR_SIZE, O_RDWR, 0)?;

    let mut reader = unsafe { ByteQueue::attach(shm_handle.as_mut_ptr_u8(), SHM_CW_RR_SIZE) };
    let mut rx = [0u8; 256];

    loop {
        let len = reader.consume_at_most(&mut rx);

        if len != 0 {
            println!("shm data: {:?}", &rx[..len]);
            std::thread::sleep(std::time::Duration::from_secs(1));
        }
    }
}