diff --git a/crates/gobrr/src/runner.rs b/crates/gobrr/src/runner.rs index cf72849..01a09e2 100644 --- a/crates/gobrr/src/runner.rs +++ b/crates/gobrr/src/runner.rs @@ -133,7 +133,13 @@ pub async fn start_load_test(config_path: &str) -> Result { loop { tokio::select! { biased; - _ = replenish_shutdown.recv() => break, + _ = replenish_shutdown.recv() => { + // Close the semaphore so signers blocked in + // acquire_rate_permit() get an AcquireError + // and can check their shutdown channel. + limiter.close(); + break; + } _ = interval.tick() => { let available = limiter.available_permits(); if available < max_permits {