Better interface for stream readers
This commit is contained in:
45
examples/streams.rs
Normal file
45
examples/streams.rs
Normal file
@ -0,0 +1,45 @@
|
||||
use std::time::Duration;
|
||||
|
||||
use rdsp::{stream, stream_operators};
|
||||
|
||||
fn main() {
|
||||
let (mut a_tx, a_rx) = stream::stream::<u32>(16);
|
||||
let (mut b_tx, b_rx) = stream::stream::<u32>(16);
|
||||
|
||||
std::thread::spawn(move || {
|
||||
let mut k = 0;
|
||||
loop {
|
||||
std::thread::sleep(Duration::from_millis(800));
|
||||
let mut buf = a_tx.write();
|
||||
for i in 0..16 {
|
||||
buf[i].write(k);
|
||||
k += 1;
|
||||
}
|
||||
buf.swap(16);
|
||||
}
|
||||
});
|
||||
|
||||
std::thread::spawn(move || {
|
||||
let mut k = 0;
|
||||
loop {
|
||||
std::thread::sleep(Duration::from_millis(300));
|
||||
let mut buf = b_tx.write();
|
||||
for i in 0..16 {
|
||||
buf[i].write(k);
|
||||
k += 1;
|
||||
}
|
||||
buf.swap(16);
|
||||
}
|
||||
});
|
||||
|
||||
let (adder, out) = stream_operators::StreamAdder::new(a_rx, b_rx);
|
||||
|
||||
{
|
||||
loop {
|
||||
let x = out.read();
|
||||
for i in 0..x.len() {
|
||||
println!("{}", x[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user