mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-07-03 16:20:34 +08:00
f45b960eee
This prevents the mavlink transmit loop from waiting on the module mutex thus not stopping transmissions when the mutex is already taken. This can happen when calling `mavlink status` from the mavlink shell, where `Mavlink::get_status_all_instances()` takes the mutex and then prints the status via pipes to the mavlink transmit buffer. If that pipe cannot be emptied a deadlock happens. Since the MavlinkReceiver thread also waits on the module mutex, both reception and transmission of Mavlink packets are then prevented thus disabling communications entirely.