diff --git a/src/server/connection.rs b/src/server/connection.rs index 32d489140..529e0d7e5 100644 --- a/src/server/connection.rs +++ b/src/server/connection.rs @@ -112,7 +112,9 @@ impl Connection { challenge: Config::get_auto_password(), ..Default::default() }; - let (tx_from_cm, mut rx_from_cm) = mpsc::unbounded_channel::(); + let (tx_from_cm_holder, mut rx_from_cm) = mpsc::unbounded_channel::(); + // holding tx_from_cm_holde to avoid cpu burning of rx_from_cm.recv when all sender closed + let tx_from_cm = tx_from_cm_holder.clone(); let (tx_to_cm, rx_to_cm) = mpsc::unbounded_channel::(); let (tx, mut rx) = mpsc::unbounded_channel::<(Instant, Arc)>(); let (tx_video, mut rx_video) = mpsc::unbounded_channel::<(Instant, Arc)>();