jitterbug/examples/multi-thread.rs

31 lines
741 B
Rust

use safe_executor::{Executor, JoinError};
fn main() -> Result<(), JoinError> {
let executor = Executor::new();
for _ in 0..4 {
let executor = executor.clone();
std::thread::spawn(move || {
let _ = executor.block_on(std::future::pending::<()>());
});
}
let execu2r = executor.clone();
executor.block_on(async move {
let mut join_handles = Vec::new();
for _ in 0..4 {
join_handles.extend((0..502).map(|i| execu2r.spawn(async move {
println!("{}", i);
})));
}
for handle in join_handles {
handle.await?;
}
println!("Done waiting");
Ok(()) as Result<(), JoinError>
})?
}