use std::collections::VecDeque; use std::error::Error; use std::fs::File; use std::process::Command; fn main() -> Result<(), Box> { std::env::set_current_dir("test_data")?; let mut deque = VecDeque::new(); for i in 0..100 { let mut cmd = Command::new("dummyjson.cmd"); deque.push_back( cmd.arg("template.hbs") .stdout(File::create(format!("rnd{:04}.json", i))?) .spawn()?, ); if deque.len() >= 20 { deque.pop_front().unwrap().wait()?; } } for mut child in deque { child.wait()?; } Ok(()) }