From a4527485a330631cd84ef3b1543672dfc61baa7c Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Sun, 22 Aug 2021 11:06:55 -0400 Subject: [PATCH] mavlink: update radio status timestamp atomically - this is updated by the mavlink rx thread, but checked in the tx thread --- src/modules/mavlink/mavlink_main.cpp | 2 +- src/modules/mavlink/mavlink_receiver.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp index 1beac0c6f8..842428ff5b 100644 --- a/src/modules/mavlink/mavlink_main.cpp +++ b/src/modules/mavlink/mavlink_main.cpp @@ -1457,7 +1457,7 @@ Mavlink::update_rate_mult() } else if (_radio_status_available) { // check for RADIO_STATUS timeout and reset - if (hrt_elapsed_time(&_rstatus.timestamp) > (_param_mav_radio_timeout.get() * 1_s)) { + if (hrt_elapsed_time_atomic(&_rstatus.timestamp) > (_param_mav_radio_timeout.get() * 1_s)) { PX4_ERR("instance %d: RADIO_STATUS timeout", _instance_id); _radio_status_available = false; diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index da97e95de4..cf491674b6 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -1506,7 +1506,7 @@ MavlinkReceiver::handle_message_radio_status(mavlink_message_t *msg) radio_status_s status{}; - status.timestamp = hrt_absolute_time(); + hrt_store_absolute_time(&status.timestamp); status.rssi = rstatus.rssi; status.remote_rssi = rstatus.remrssi; status.txbuf = rstatus.txbuf;