diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp index 3c868b9be9..9ab591f997 100644 --- a/src/modules/mavlink/mavlink_main.cpp +++ b/src/modules/mavlink/mavlink_main.cpp @@ -163,7 +163,10 @@ Mavlink::~Mavlink() } if (_instance_id >= 0) { - mavlink_module_instances[_instance_id] = nullptr; + { + LockGuard lg{mavlink_module_mutex}; + mavlink_module_instances[_instance_id] = nullptr; + } mavlink_instance_count.fetch_sub(1); } diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index c913909657..4bccb35b52 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -3160,7 +3160,7 @@ MavlinkReceiver::run() ssize_t nread = 0; hrt_abstime last_send_update = 0; - while (!_mavlink.should_exit()) { + while (!_should_exit.load()) { // check for parameter updates if (_parameter_update_sub.updated()) {