aboutsummaryrefslogtreecommitdiffstats
path: root/src/swarm/sync.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/swarm/sync.rs')
-rw-r--r--src/swarm/sync.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/swarm/sync.rs b/src/swarm/sync.rs
index dcb29a7..8059fe2 100644
--- a/src/swarm/sync.rs
+++ b/src/swarm/sync.rs
@@ -663,8 +663,14 @@ async fn download_and_apply_delta(
stats.propagated(delays);
}
if let Some(peer_state) = peer_state {
+ let mut peer_state = peer_state.blocking_lock();
// Sync from it made progress: no heal for a while (`keepalive`).
- peer_state.blocking_lock().last_sync_rx = Some(Instant::now());
+ peer_state.last_sync_rx = Some(Instant::now());
+ if changed {
+ // From its history: none goes back (`SyncSession::came_from_peer`), nor
+ // is offered back as a delta.
+ peer_state.sync.came_from_peer(&replica.doc, &heads_before);
+ }
}
Ok(changed)
})