altos: Don't hold GPS mutex while waiting for GPS data in report code
[fw/altos] / src / core / ao_gps_report_mega.c
index e2adbfbc90b38563ccfbf0f5dab57b911b077b69..a66068abfd3f6febc6a041212eddd2a4e4af162e 100644 (file)
@@ -29,9 +29,9 @@ ao_gps_report_mega(void)
        uint8_t c, n, i;
 
        for (;;) {
-               ao_mutex_get(&ao_gps_mutex);
                while (!(new = ao_gps_new))
                        ao_sleep(&ao_gps_new);
+               ao_mutex_get(&ao_gps_mutex);
                if (new & AO_GPS_NEW_DATA)
                        ao_xmemcpy(&gps_data, &ao_gps_data, sizeof (ao_gps_data));
                if (new & AO_GPS_NEW_TRACKING)