diff options
| author | tv <tv@krebsco.de> | 2026-11-06 04:33:45 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-06 04:33:45 +0100 |
| commit | de30fc105bbb9c610c847f64e00cd2555ca0c63c (patch) | |
| tree | 2b13361744eda5ba7606c18da5574744e4265668 /src/swarm/rtt.rs | |
| parent | 26ff4ff86b58fed130ce6802ac4aceba8ee93443 (diff) | |
rtt table pruned
Diffstat (limited to 'src/swarm/rtt.rs')
| -rw-r--r-- | src/swarm/rtt.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/swarm/rtt.rs b/src/swarm/rtt.rs index 370754c..6dfe84a 100644 --- a/src/swarm/rtt.rs +++ b/src/swarm/rtt.rs @@ -39,6 +39,14 @@ struct Outstanding { } impl RttTable { + /// Keeps only the peers `keep` says (those still known: else every peer ever + /// greeted or measured would stay). + pub(crate) fn retain(&mut self, mut keep: impl FnMut(&str) -> bool) { + self.hellos.retain(|peer, _| keep(peer)); + self.from_paths.retain(|peer, _| keep(peer)); + self.from_hellos.retain(|peer, _| keep(peer)); + } + /// The paths layer's round-trip time to `peer` (`Transport::rtt`), as a PONG from /// it arrived. pub(crate) fn measured(&mut self, peer: &str, rtt: Duration, now: Instant) { |
