use std::time::Duration;
use shared_buffer_rs::RwBuffers;
fn main()
{
let mut bufs = RwBuffers::new(4096, 1, 3).unwrap();
let buf0 = bufs.allocate().unwrap();
let mut buf0_write = buf0.write().unwrap();
buf0_write.as_mut_slice()[0] = 5;
buf0_write.as_mut_slice()[1] = 4;
println!("{}", buf0_write[0]);
let buf0_r = buf0_write.downgrade().unwrap();
let join1=
std::thread::spawn(move ||
{
println!("thread[1]:{}", buf0_r[0]);
std::thread::sleep(Duration::from_secs(1));
return;
}
);
let buf0_r = buf0.read().unwrap();
drop(buf0);
let join2=
std::thread::spawn(move ||
{
println!("thread[2]: {}", buf0_r[0]);
println!("thread[2]: {}", buf0_r[1]);
std::thread::sleep(Duration::from_secs(1));
return;
}
);
let _ = join1.join();
let _ = join2.join();
}