diff --git a/src/main.rs b/src/main.rs index 3b7ef0cb..98485334 100644 --- a/src/main.rs +++ b/src/main.rs @@ -544,23 +544,20 @@ async fn run() -> anyhow::Result<()> { } std::process::exit(libc::EXIT_SUCCESS) } else if no_tui - && opts.duration.is_some() + && opts.duration.is_none() && opts.query_per_second.is_none() && opts.burst_duration.is_none() - && !client.is_work_http2() { // Use optimized work_until2 for duration only mode. - let duration = opts.duration.unwrap(); let (result_tx, result_rx) = flume::unbounded(); - client::work_until2( + client::work2( client.clone(), result_tx, - start + duration.into(), + opts.n_requests, opts.n_connections, opts.n_http2_parallel, - opts.wait_ongoing_requests_after_deadline, ) .await; @@ -572,20 +569,23 @@ async fn run() -> anyhow::Result<()> { res }) as Pin>> } else if no_tui - && opts.duration.is_none() + && opts.duration.is_some() && opts.query_per_second.is_none() && opts.burst_duration.is_none() + && !client.is_work_http2() { // Use optimized work_until2 for duration only mode. + let duration = opts.duration.unwrap(); let (result_tx, result_rx) = flume::unbounded(); - client::work2( + client::work_until2( client.clone(), result_tx, - opts.n_requests, + start + duration.into(), opts.n_connections, opts.n_http2_parallel, + opts.wait_ongoing_requests_after_deadline, ) .await;