Original project changes: Location: fix concurrency between park position update & check

This commit is contained in:
Carsten Schmiemann 2022-05-27 23:07:28 +02:00
parent dec6c220d5
commit 894a063083
2 changed files with 5 additions and 0 deletions

View File

@ -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;

View File

@ -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;