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}