diff options
| author | tv <tv@krebsco.de> | 2026-10-26 04:24:52 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-10-26 04:24:52 +0100 |
| commit | 2f3d191a12b6e03ef1845c202d15c7b90736558c (patch) | |
| tree | f9e0aecafd5d32f904ffd62893132994ee52958f /src/api/peers.rs | |
| parent | 7b7dcb5a77061cb69d368de263a02b5ad26fbf51 (diff) | |
unify peers snapshot logic
Diffstat (limited to 'src/api/peers.rs')
| -rw-r--r-- | src/api/peers.rs | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/src/api/peers.rs b/src/api/peers.rs index fac3440..c7b3c50 100644 --- a/src/api/peers.rs +++ b/src/api/peers.rs @@ -1,14 +1,11 @@ //! /peers handlers. -use std::sync::Arc; - use axum::{ Json, extract::{Path, Query, State}, http::StatusCode, }; use serde::{Deserialize, Serialize}; -use tokio::sync::Mutex; use tokio::time::Instant; use tracing::warn; use utoipa::ToSchema; @@ -17,7 +14,7 @@ use super::store_status; use crate::document::replica::Epoch; use crate::document::store; use crate::locks::MutexExt; -use crate::state::{AppState, HelloState, Incidents, Liveness, PeerState}; +use crate::state::{AppState, HelloState, Incidents, Liveness}; use crate::swarm::peer::forgotten_path; use crate::transport::traffic::PeerTraffic; @@ -120,13 +117,7 @@ pub(crate) struct DeletePeerQuery { pub(crate) async fn list_peers( State(state): State<AppState>, ) -> Result<Json<PeerListResponse>, StatusCode> { - let snapshot: Vec<(String, Arc<Mutex<PeerState>>)> = state - .peer_states - .read() - .await - .iter() - .map(|(pk, m)| (pk.clone(), Arc::clone(m))) - .collect(); + let snapshot = state.peers_snapshot().await; let now = Instant::now(); let local_epoch = state.local_epoch(); |
