31 lines
741 B
Rust
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>
|
||
|
})?
|
||
|
}
|