Browse Source

AP_Compass: fix potential AP_Notify concurrency problem

mission-4.1.18
Jonathan Challinger 10 years ago committed by Randy Mackay
parent
commit
562db11159
  1. 7
      libraries/AP_Compass/AP_Compass_Calibration.cpp

7
libraries/AP_Compass/AP_Compass_Calibration.cpp

@ -9,7 +9,7 @@ extern AP_HAL::HAL& hal;
void void
Compass::compass_cal_update() Compass::compass_cal_update()
{ {
AP_Notify::flags.compass_cal_running = 0; bool running = false;
for (uint8_t i=0; i<COMPASS_MAX_INSTANCES; i++) { for (uint8_t i=0; i<COMPASS_MAX_INSTANCES; i++) {
bool failure; bool failure;
@ -24,9 +24,12 @@ Compass::compass_cal_update()
} }
if (_calibrator[i].running()) { if (_calibrator[i].running()) {
AP_Notify::flags.compass_cal_running = 1; running = true;
} }
} }
AP_Notify::flags.compass_cal_running = running;
if (is_calibrating()) { if (is_calibrating()) {
_cal_has_run = true; _cal_has_run = true;
return; return;

Loading…
Cancel
Save