summaryrefslogtreecommitdiffstats
path: root/src/swarm/source.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-24 05:21:07 +0200
committertv <tv@krebsco.de>2026-10-24 05:21:42 +0200
commit81a6e029d835f576a4303b0fc78fbd8e2f26e2a7 (patch)
tree1539de56cfcbfed2099c205975ec848b058f4f70 /src/swarm/source.rs
parentfb7e04544c798dcfa6a25f7db278427a9a39ddef (diff)
record RTT sampling instant
Diffstat (limited to 'src/swarm/source.rs')
-rw-r--r--src/swarm/source.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/swarm/source.rs b/src/swarm/source.rs
index 292cfc8..36a333e 100644
--- a/src/swarm/source.rs
+++ b/src/swarm/source.rs
@@ -82,8 +82,9 @@ pub(crate) fn defer(state: &AppState, peer: &str, peer_state: &PeerState) -> Opt
// that, whoever asks first takes it (the closer one may not be suitable after all).
let rtt = {
let rtts = state.lock_rtt();
- let mine = rtts.get(peer);
- let closer = rtts.all().any(|(other, rtt)| {
+ let fresh_for = state.timing.rtt_fresh_for();
+ let mine = rtts.effective(peer, now, fresh_for);
+ let closer = rtts.all_effective(now, fresh_for).any(|(other, rtt)| {
other != peer
&& quiet.as_deref() != Some(other)
&& mine.is_none_or(|mine| rtt * 5 < mine * 4)