simplify request handler task base

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk 2025-01-30 09:28:34 +00:00
commit 69837671bb
6 changed files with 35 additions and 76 deletions
src/router/serve

View file

@ -24,27 +24,20 @@ pub(super) async fn serve(
info!("Listening on {addrs:?}");
while join_set.join_next().await.is_some() {}
let spawn_active = server.metrics.requests_spawn_active.load(Ordering::Relaxed);
let handle_active = server
.metrics
.requests_handle_active
.load(Ordering::Relaxed);
debug_info!(
spawn_finished = server
.metrics
.requests_spawn_finished
.load(Ordering::Relaxed),
handle_finished = server
.metrics
.requests_handle_finished
.load(Ordering::Relaxed),
panics = server.metrics.requests_panic.load(Ordering::Relaxed),
spawn_active,
handle_active,
"Stopped listening on {addrs:?}",
);
debug_assert!(spawn_active == 0, "active request tasks are not joined");
debug_assert!(handle_active == 0, "active request handles still pending");
Ok(())

View file

@ -159,7 +159,12 @@ async fn fini(server: &Arc<Server>, listener: UnixListener, mut tasks: JoinSet<(
drop(listener);
debug!("Waiting for requests to finish...");
while server.metrics.requests_spawn_active.load(Ordering::Relaxed) > 0 {
while server
.metrics
.requests_handle_active
.load(Ordering::Relaxed)
.gt(&0)
{
tokio::select! {
task = tasks.join_next() => if task.is_none() { break; },
() = sleep(FINI_POLL_INTERVAL) => {},