diff options
Diffstat (limited to 'src/swarm')
| -rw-r--r-- | src/swarm/source.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/swarm/source.rs b/src/swarm/source.rs index d80e4d7..5e428f2 100644 --- a/src/swarm/source.rs +++ b/src/swarm/source.rs @@ -286,12 +286,18 @@ pub(crate) fn probe_due(state: &AppState, peer: &str, now: Instant) -> bool { due } -/// The initial sync is done: no source any more, and the peers we held back only need -/// to learn our heads now. -pub(crate) fn finished(state: &AppState, from: &str) { +/// No catch-up going on: no source, no head start, nobody avoided. When one ends, and +/// before one starts (a rejoin: `Host::reset_initial_sync`). +pub(crate) fn reset(state: &AppState) { *lock(state) = None; *lock_preference(state) = None; *lock_avoided(state) = None; +} + +/// The initial sync is done: no source any more, and the peers we held back only need +/// to learn our heads now. +pub(crate) fn finished(state: &AppState, from: &str) { + reset(state); let state = state.clone(); let from = from.to_owned(); tokio::spawn(async move { |
