aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2024-01-29 17:52:06 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2024-01-29 17:52:06 +0100
commitd0bb4a2c2636862f44d174edb7e809593ce27c62 (patch)
treee156257b7c2a35f0e29c1ec86da0bdf03158bf4e
parentad00031aa2d0293302c59e36eb30b680cedd6ac9 (diff)
use wrapping client ids
-rw-r--r--src/main.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index f06948c..9c2490b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -3,6 +3,7 @@ use std::collections::HashMap;
use std::fs;
use std::io;
use std::net::SocketAddr;
+use std::num::Wrapping;
use std::sync::Arc;
use tokio::sync::{mpsc, Mutex};
@@ -68,10 +69,12 @@ impl PacketCodec for NullCodec {
}
}
+type HandleId = (Wrapping<usize>, ChannelId);
+
#[derive(Clone)]
struct Server {
- clients: Arc<Mutex<HashMap<(usize, ChannelId), Handle>>>,
- id: usize,
+ clients: Arc<Mutex<HashMap<HandleId, Handle>>>,
+ id: Wrapping<usize>,
packets: Arc<Mutex<HeapRb<Vec<u8>>>>,
}
@@ -235,7 +238,7 @@ async fn main() -> Result<()> {
let server = Server {
clients: Arc::new(Mutex::new(HashMap::new())),
- id: 0,
+ id: Wrapping(0),
packets: Arc::new(Mutex::new(HeapRb::new(64000))),
};