An eventually-consistent, lock-free, mutable store of shared data.
Just stick it on the pinboard!
Install from crates.io by adding pinboard
to your Cargo.toml
:
[dependencies]
pinboard = "2.0.0"
Now you can create a Pinboard, share it between your users (be they Futures
, threads or really anything else) and start sharing data!
use pinboard::NonEmptyPinboard;
use std::{thread, time::Duration};
let weather_report = NonEmptyPinboard::new("Sunny");
crossbeam::scope(|scope| {
scope.spawn(|_| {
thread::sleep(Duration::from_secs(10));
weather_report.set("Raining");
});
scope.spawn(|_| {
loop {
println!("The weather is {}", weather_report.get_ref());
thread::sleep(Duration::from_secs(1));
}
});
});