use noworkers::Workers;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
println!("Basic noworkers example");
println!("=======================\n");
let workers = Workers::new();
for i in 0..5 {
workers
.add(move |_cancel| async move {
println!("Task {} starting...", i);
tokio::time::sleep(tokio::time::Duration::from_millis(100 * (i as u64 + 1))).await;
println!("Task {} completed!", i);
Ok(())
})
.await?;
}
println!("\nAll tasks spawned, waiting for completion...\n");
workers.wait().await?;
println!("\nAll tasks completed successfully!");
Ok(())
}