ex1/
ex1.rs

1use ordered_parallel_iterator::OrderedParallelIterator;
2
3fn run_me(x: usize) -> usize {
4    eprintln!("start {}", x);
5    sleep_secs(30 - x);
6    eprintln!("end {}", x);
7    x
8}
9
10fn sleep_secs(secs: usize) {
11    std::thread::sleep(std::time::Duration::from_secs(secs as u64));
12}
13
14fn main() {
15    for i in crate::OrderedParallelIterator::new(|| 0..30, || run_me) {
16        eprintln!("consume {}", i);
17        sleep_secs(i);
18        eprintln!("wake up and took next value");
19    }
20}