Skip to main content

sequence/
sequence.rs

1use std::time::{Instant, Duration};
2
3use timely::Config;
4use timely::synchronization::Sequencer;
5
6fn main() {
7    timely::execute(Config::process(4), |worker| {
8
9        let timer = Instant::now();
10        let mut sequencer = Sequencer::new(worker, Instant::now());
11
12        for round in 0 .. {
13            // if worker.index() < 3 {
14                std::thread::sleep(Duration::from_secs(1 + worker.index() as u64));
15                sequencer.push(format!("worker {:?}, round {:?}", worker.index(), round));
16            // }
17            for element in &mut sequencer {
18                println!("{:?}:\tWorker {:?}:\t recv'd: {:?}", timer.elapsed(), worker.index(), element);
19            }
20            worker.step();
21        }
22
23    }).unwrap(); // asserts error-free execution;
24}