diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-11 17:00:55 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-11 17:00:55 +0300 |
| commit | 065ae01b63e47793362a0bda944f732addd10668 (patch) | |
| tree | fb8367bf715b2968adc2100081ebc507366bcf50 /src/server | |
| parent | 8007c9202ce1f90f95bd3442bc59148e33d13620 (diff) | |
fix: drain client control messages during shutdown
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/client_transport.rs | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/server/client_transport.rs b/src/server/client_transport.rs index ec1adf0b..c4c1acc0 100644 --- a/src/server/client_transport.rs +++ b/src/server/client_transport.rs @@ -182,7 +182,6 @@ pub(crate) fn handle_client_handshake( // Spawn a writer thread that forwards messages from the channels to the stream. let write_stream = stream.try_clone()?; - let write_quit = should_quit.clone(); let writer_event_tx = server_event_tx.clone(); std::thread::spawn(move || { client_writer_loop( @@ -191,7 +190,6 @@ pub(crate) fn handle_client_handshake( control_rx, render_rx, writer_event_tx, - &write_quit, ); }); @@ -206,12 +204,11 @@ fn client_writer_loop( control_rx: std::sync::mpsc::Receiver<Vec<u8>>, render_rx: std::sync::mpsc::Receiver<Vec<u8>>, server_event_tx: mpsc::Sender<ServerEvent>, - should_quit: &Arc<AtomicBool>, ) { let mut control_closed = false; let mut render_closed = false; - while !should_quit.load(Ordering::Acquire) { + loop { match control_rx.try_recv() { Ok(data) => { if !write_framed_bytes(&mut stream, &data) { |
