From b4d0f3d9671c3bac8fd3c4b6c3f5f75196a06742 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 6 Nov 2026 04:34:11 +0100 Subject: known elsewhere pruned --- src/document/sync.rs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/document/sync.rs b/src/document/sync.rs index eed0024..114b538 100644 --- a/src/document/sync.rs +++ b/src/document/sync.rs @@ -842,6 +842,11 @@ impl SyncSession { peer: &str, now: Instant, ) -> (usize, usize) { + // Pruned here too, on every message from the peer: `known_to_peer` prunes only + // when another parent brings something, which stops when the peer is no longer + // covered by one. + self.known_elsewhere + .retain(|_, at| now.saturating_duration_since(*at) < KNOWN_ELSEWHERE_KEPT); let mut asked = (0, 0); for hash in self.state.their_need.iter().flatten() { if let Some(at) = self.known_elsewhere.remove(hash) { -- cgit v1.3.1