diff options
| author | tv <tv@krebsco.de> | 2026-10-31 03:47:04 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-10-31 03:47:04 +0100 |
| commit | 787a5952794eb6927c7bc2244aa8fd8a403849c6 (patch) | |
| tree | 19230e00f6b06a7cafa742b584a754b499e3450a /src/swarm/source.rs | |
| parent | 0e13c368f6214dabe99c987a98a990d4e4e0b3c8 (diff) | |
unify source reset
Diffstat (limited to 'src/swarm/source.rs')
| -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 { |
