summaryrefslogtreecommitdiffstats
path: root/src/api/peers.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/peers.rs')
-rw-r--r--src/api/peers.rs13
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();