5 stable releases
1.2.2 | Feb 21, 2021 |
---|---|
1.2.1 | Aug 26, 2019 |
1.2.0 | Apr 4, 2019 |
1.1.0 | Jun 29, 2017 |
1.0.0 | Jun 21, 2017 |
#429 in Concurrency
1,550 downloads per month
Used in 4 crates
13KB
212 lines
single_value_channel
Non-blocking single value update and receive channel.
This module provides a latest-message style channel, where update sources can update the latest value that the receiver owns in a practically non-blocking way.
Unlike the mpsc::channel
each value send will overwrite the 'latest' value. See the documentation for
more details.
use single_value_channel::channel_starting_with;
use std::thread;
let (mut receiver, updater) = channel_starting_with(0);
assert_eq!(*receiver.latest(), 0);
thread::spawn(move|| {
updater.update(2); // next access to receiver.latest() -> 2
updater.update(12); // next access to receiver.latest() -> 12
}).join();
assert_eq!(*receiver.latest(), 12);
Minimum supported rust compiler
This crate is maintained with latest stable rust.