diff options
Diffstat (limited to 'src/swarm/peer.rs')
| -rw-r--r-- | src/swarm/peer.rs | 14 |
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(); |
