diff --git a/OVMS.V3/components/ovms_location/src/ovms_location.cpp b/OVMS.V3/components/ovms_location/src/ovms_location.cpp index 923d2d0..860834b 100644 --- a/OVMS.V3/components/ovms_location/src/ovms_location.cpp +++ b/OVMS.V3/components/ovms_location/src/ovms_location.cpp @@ -752,6 +752,8 @@ void OvmsLocations::UpdatedVehicleOn(OvmsMetric* metric) void OvmsLocations::UpdateParkPosition() { + OvmsRecMutexLock lock(&m_park_lock); + bool caron = StdMetrics.ms_v_env_on->AsBool(); if (caron) { @@ -843,6 +845,8 @@ void OvmsLocations::CheckTheft() { static int last_dist = 0; + OvmsRecMutexLock lock(&m_park_lock); + if ((m_park_latitude == 0) && (m_park_longitude == 0)) return; if (StandardMetrics.ms_v_env_on->AsBool()) return; diff --git a/OVMS.V3/components/ovms_location/src/ovms_location.h b/OVMS.V3/components/ovms_location/src/ovms_location.h index 249822a..de00537 100644 --- a/OVMS.V3/components/ovms_location/src/ovms_location.h +++ b/OVMS.V3/components/ovms_location/src/ovms_location.h @@ -104,6 +104,7 @@ class OvmsLocations float m_park_longitude; float m_park_distance; bool m_park_invalid; + OvmsRecMutex m_park_lock; uint32_t m_last_alarm; LocationMap m_locations;