From 9a030e4786b5dddcaa8f9aae15d7b7e513dd8c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Wed, 29 Nov 2023 09:38:10 -0300 Subject: [PATCH] mavlink: mavlink_camera: Use try_recv over recv to avoid blocking scope when finishing loop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Patrick José Pereira --- src/mavlink/mavlink_camera.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mavlink/mavlink_camera.rs b/src/mavlink/mavlink_camera.rs index c28df50b..91cae8fb 100644 --- a/src/mavlink/mavlink_camera.rs +++ b/src/mavlink/mavlink_camera.rs @@ -190,14 +190,15 @@ impl MavlinkCamera { break; } - let (header, message) = match receiver.recv().await { + std::thread::sleep(std::time::Duration::from_millis(10)); + let (header, message) = match receiver.try_recv() { Ok(Message::Received(message)) => message, - Err(broadcast::error::RecvError::Closed) => { + Err(broadcast::error::TryRecvError::Closed) => { unreachable!( "Closed channel: This should never happen, this channel is static!" ); } - Ok(Message::ToBeSent(_)) | Err(broadcast::error::RecvError::Lagged(_)) => continue, + Ok(Message::ToBeSent(_)) | Err(_) => continue, }; trace!("Message received: {header:?}, {message:?}");