fix(server): remove rwlock unwraps to prevent panic on lock poison and optimize omni search to serialize inner loops without allocations

This commit is contained in:
Riz Ashraf committed 2026-09-21 16:49:21 +01:00
1 parent 1af21b3aec
commit 42d3638cf8
2 files changed
+46 -53

No files matched your search

+3 -3
View File
@@ -446,7 +446,7 @@ async fn handle_socket(socket: WebSocket, state: Arc<AppState>, client_type: Str
state
.clients
.write()
.unwrap()
.unwrap_or_else(|e| e.into_inner())
.insert(session_id.clone(), tx.clone());
let (mut sender, mut receiver) = socket.split();
@@ -501,7 +501,7 @@ async fn handle_socket(socket: WebSocket, state: Arc<AppState>, client_type: Str
let senders: Vec<_> = state_clone
.clients
.read()
.unwrap()
.unwrap_or_else(|e| e.into_inner())
.iter()
.filter_map(|(id, tx)| {
if id != &session_id_clone {
@@ -524,7 +524,7 @@ async fn handle_socket(socket: WebSocket, state: Arc<AppState>, client_type: Str
let tx_opt = state_clone
.clients
.read()
.unwrap()
.unwrap_or_else(|e| e.into_inner())
.get(&session_id_clone)
.cloned();
if let Some(client_tx) = tx_opt {