diff options
| author | tv <tv@krebsco.de> | 2026-10-24 05:21:07 +0200 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-10-24 05:21:42 +0200 |
| commit | 81a6e029d835f576a4303b0fc78fbd8e2f26e2a7 (patch) | |
| tree | 1539de56cfcbfed2099c205975ec848b058f4f70 /src/swarm/source.rs | |
| parent | fb7e04544c798dcfa6a25f7db278427a9a39ddef (diff) | |
record RTT sampling instant
Diffstat (limited to 'src/swarm/source.rs')
| -rw-r--r-- | src/swarm/source.rs | 5 |
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) |
