summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-25 22:04:15 +0100
committertv <tv@krebsco.de>2026-10-25 22:04:15 +0100
commit2d53123f93fe35993f317b00be71c7c8410e635b (patch)
treedb626b8f98fd550c20722d2882c91965a3a00802
parent4efa5a7c0f5d51c16ff87a3873e024cb2a336714 (diff)
run peer worker when becoming ready
-rw-r--r--src/swarm/peer.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/swarm/peer.rs b/src/swarm/peer.rs
index fc37ec2..7385ae2 100644
--- a/src/swarm/peer.rs
+++ b/src/swarm/peer.rs
@@ -443,12 +443,20 @@ pub(crate) async fn run_peer_worker(state: AppState) {
info!("Starting peer maintenance worker");
let mut last_forget_check: Option<Instant> = None;
+ let mut was_ready = false;
loop {
tick.tick().await;
// While joining, keep handshakes fast; dormancy would slow probes to minutes.
let ready = state.is_ready().await;
+ if ready && !was_ready {
+ // Just became ready: register in the member list (and do the other periodic
+ // checks) now rather than at the next check. Until it is registered, other
+ // members don't count this node as a neighbour.
+ last_forget_check = None;
+ }
+ was_ready = ready;
let peers: Vec<(String, Arc<Mutex<PeerState>>)> = state
.peer_states