diff options
| author | tv <tv@krebsco.de> | 2026-10-26 06:13:05 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-10-26 06:13:05 +0100 |
| commit | 71fa578f7853e92817ca75f2763f22bbb5de9df1 (patch) | |
| tree | c3822914fb4c680303f595b9952078c2b3c984d1 /src/swarm/peer/worker.rs | |
| parent | 2828811b0d5f5003b7070bdac7078f50f0783e0f (diff) | |
forget records only once
Diffstat (limited to 'src/swarm/peer/worker.rs')
| -rw-r--r-- | src/swarm/peer/worker.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/swarm/peer/worker.rs b/src/swarm/peer/worker.rs index 5161ae6..20e2542 100644 --- a/src/swarm/peer/worker.rs +++ b/src/swarm/peer/worker.rs @@ -8,7 +8,7 @@ use std::time::Duration; use tokio::time::{Instant, MissedTickBehavior}; use tracing::{debug, info, warn}; -use super::forget::{apply_forget_records, forget_strangers}; +use super::forget::{AppliedForgets, apply_forget_records, forget_strangers}; use super::handshake::retry_hello_if_due; use super::keepalive::send_ping; use crate::locks::MutexExt; @@ -27,6 +27,7 @@ pub(crate) async fn run_peer_worker(state: AppState) { info!("Starting peer maintenance worker"); let mut last_forget_check: Option<Instant> = None; + let mut forgets_applied = AppliedForgets::new(); let mut was_ready = false; loop { @@ -93,7 +94,7 @@ pub(crate) async fn run_peer_worker(state: AppState) { } if last_forget_check.is_none_or(|t| t.elapsed() >= FORGET_CHECK_INTERVAL) { - apply_forget_records(&state).await; + apply_forget_records(&state, &mut forgets_applied).await; forget_strangers(&state).await; crate::swarm::members::ensure_registered(&state).await; crate::swarm::stability::tick(&state).await; |
