From e293047c25d7167f25af0a611b33545f12225b05 Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 1 Nov 2026 20:36:17 +0100 Subject: peer worker sleeps until deadline, not fixed time --- src/swarm/peer/handshake.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/swarm/peer/handshake.rs') diff --git a/src/swarm/peer/handshake.rs b/src/swarm/peer/handshake.rs index 13a1264..896ffdf 100644 --- a/src/swarm/peer/handshake.rs +++ b/src/swarm/peer/handshake.rs @@ -149,9 +149,9 @@ async fn transmit_hello(state: &AppState, peer: &str) -> Result<()> { if peer_state.hello_state == HelloState::Sending { topology::change_peer(state, &mut peer_state, |p| p.hello_sent(Instant::now())); let wait = peer_state.next_hello_wait(); - peer_state.hello_state = HelloState::AwaitingReply { - next_attempt: Instant::now() + wait, - }; + let next_attempt = Instant::now() + wait; + peer_state.hello_state = HelloState::AwaitingReply { next_attempt }; + state.peers_due.by(next_attempt); } } @@ -413,6 +413,8 @@ pub(super) async fn establish_peer( if from_hello || peer_state.hello_state != HelloState::Established { peer_state.hello_state = HelloState::Established; peer_state.reset_sync(); + // Keepalives start. + state.peers_due.now(); info!(peer = %peer, from_hello, "Handshake complete; sync state reset"); } -- cgit v1.3.1