From 1ac2953857bbc3325d25c4f3bb6ff01e5a107464 Mon Sep 17 00:00:00 2001 From: Reboot-Codes Date: Sat, 31 Jan 2026 18:48:01 -0700 Subject: [PATCH] Make sure to fix race conditions! --- src/server/listener.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/server/listener.rs b/src/server/listener.rs index 4f4ccfc..226c939 100644 --- a/src/server/listener.rs +++ b/src/server/listener.rs @@ -275,6 +275,7 @@ pub async fn nexus_listener( internal_client_senders: Vec<(Arc, usize, broadcast::Sender)>, internal_client_recivers: Vec<(Arc, usize, broadcast::Sender)>, cancellation_tokens: (CancellationToken, CancellationToken), + ready_signal: Option>, ) { info!("Starting nexus on port: {}...", port); let clients_tx: Arc>>> = @@ -303,6 +304,12 @@ pub async fn nexus_listener( clients_tx.lock().await.insert(cid.clone(), client.2); } + // Signal that nexus is ready AFTER internal clients are registered + if let Some(tx) = ready_signal { + let _ = tx.send(()); + info!("Nexus ready - internal clients registered!"); + } + let (from_client_tx, mut from_client_rx) = mpsc::unbounded_channel::(); let filter_to_clients_tx = Arc::new(clients_tx.clone()); -- 2.51.2