Original project changes: Location: fix concurrency between park position update & check
This commit is contained in:
parent
dec6c220d5
commit
894a063083
|
@ -752,6 +752,8 @@ void OvmsLocations::UpdatedVehicleOn(OvmsMetric* metric)
|
||||||
|
|
||||||
void OvmsLocations::UpdateParkPosition()
|
void OvmsLocations::UpdateParkPosition()
|
||||||
{
|
{
|
||||||
|
OvmsRecMutexLock lock(&m_park_lock);
|
||||||
|
|
||||||
bool caron = StdMetrics.ms_v_env_on->AsBool();
|
bool caron = StdMetrics.ms_v_env_on->AsBool();
|
||||||
if (caron)
|
if (caron)
|
||||||
{
|
{
|
||||||
|
@ -843,6 +845,8 @@ void OvmsLocations::CheckTheft()
|
||||||
{
|
{
|
||||||
static int last_dist = 0;
|
static int last_dist = 0;
|
||||||
|
|
||||||
|
OvmsRecMutexLock lock(&m_park_lock);
|
||||||
|
|
||||||
if ((m_park_latitude == 0) && (m_park_longitude == 0)) return;
|
if ((m_park_latitude == 0) && (m_park_longitude == 0)) return;
|
||||||
if (StandardMetrics.ms_v_env_on->AsBool()) return;
|
if (StandardMetrics.ms_v_env_on->AsBool()) return;
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,7 @@ class OvmsLocations
|
||||||
float m_park_longitude;
|
float m_park_longitude;
|
||||||
float m_park_distance;
|
float m_park_distance;
|
||||||
bool m_park_invalid;
|
bool m_park_invalid;
|
||||||
|
OvmsRecMutex m_park_lock;
|
||||||
uint32_t m_last_alarm;
|
uint32_t m_last_alarm;
|
||||||
LocationMap m_locations;
|
LocationMap m_locations;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue