Skip to main content

run

Function run 

Source
pub async fn run<F, Fut>(
    session: &Session,
    cases: &[Case],
    ask: F,
    concurrency: usize,
) -> Vec<Outcome>
where F: Fn(Session) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = Outcome> + Send + 'static,
Expand description

Send every case through ask, at most concurrency at a time; results are in case order.

Every case is spawned at once and a semaphore decides how many are in the air, so a slow case holds up nothing but itself, and each result is written to its own slot: a file of a thousand labels keeps its order however the calls come back.