summaryrefslogtreecommitdiffstats
path: root/src/swarm/peer.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-26 04:24:52 +0100
committertv <tv@krebsco.de>2026-10-26 04:24:52 +0100
commit2f3d191a12b6e03ef1845c202d15c7b90736558c (patch)
treef9e0aecafd5d32f904ffd62893132994ee52958f /src/swarm/peer.rs
parent7b7dcb5a77061cb69d368de263a02b5ad26fbf51 (diff)
unify peers snapshot logic
Diffstat (limited to 'src/swarm/peer.rs')
-rw-r--r--src/swarm/peer.rs14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/swarm/peer.rs b/src/swarm/peer.rs
index ec6543b..79e958b 100644
--- a/src/swarm/peer.rs
+++ b/src/swarm/peer.rs
@@ -351,12 +351,10 @@ async fn send_hello_reply(
.ok_or_else(|| anyhow!("Cannot send HELLO_REPLY without an established swarm ID"))?;
let candidates: Vec<(String, Arc<Mutex<PeerState>>)> = state
- .peer_states
- .read()
+ .peers_snapshot()
.await
- .iter()
+ .into_iter()
.filter(|(known, _)| known.as_str() != peer)
- .map(|(known, m)| (known.clone(), Arc::clone(m)))
.collect();
let mut peers = Vec::new();
@@ -476,13 +474,7 @@ pub(crate) async fn run_peer_worker(state: AppState) {
}
was_ready = ready;
- let peers: Vec<(String, Arc<Mutex<PeerState>>)> = state
- .peer_states
- .read()
- .await
- .iter()
- .map(|(pk, m)| (pk.clone(), Arc::clone(m)))
- .collect();
+ let peers = state.peers_snapshot().await;
for (peer, peer_state_mutex) in &peers {
let now = Instant::now();