From 84c32953ae5f52be44af4b48381747f55cb04f4a Mon Sep 17 00:00:00 2001 From: FxQnLr Date: Sun, 29 Oct 2023 20:30:01 +0100 Subject: impl dashmap --- src/services/ping.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/services') diff --git a/src/services/ping.rs b/src/services/ping.rs index 6835fc0..ed848fc 100644 --- a/src/services/ping.rs +++ b/src/services/ping.rs @@ -1,16 +1,15 @@ use std::borrow::Cow; -use std::collections::HashMap; use std::sync::Arc; use axum::extract::{ws::WebSocket}; use axum::extract::ws::{CloseFrame, Message}; +use dashmap::DashMap; use tokio::sync::broadcast::{Sender}; -use tokio::sync::Mutex; use tracing::{debug, trace, warn}; use crate::error::WebolError; -pub type PingMap = Arc>>; +pub type PingMap = Arc>; pub async fn spawn(tx: Sender, ip: String, uuid: String, ping_map: PingMap) -> Result<(), WebolError> { let payload = [0; 8]; @@ -41,11 +40,11 @@ pub async fn spawn(tx: Sender, ip: String, uuid: String, ping async fn handle_broadcast_send(tx: &Sender, ip: String, ping_map: PingMap, uuid: String) { debug!("sending pingsuccess message"); - ping_map.lock().await.insert(uuid.clone(), (ip.clone(), true)); + ping_map.insert(uuid.clone(), (ip.clone(), true)); let _ = tx.send(BroadcastCommands::PingSuccess(ip)); tokio::time::sleep(tokio::time::Duration::from_secs(60)).await; trace!("remove {} from ping_map", uuid); - ping_map.lock().await.remove(&uuid); + ping_map.remove(&uuid); } #[derive(Clone, Debug)] @@ -63,7 +62,7 @@ pub async fn status_websocket(mut socket: WebSocket, tx: Sender