diff --git a/core/loadpoint.go b/core/loadpoint.go index 9b5627156..08a290226 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -105,8 +105,8 @@ type Loadpoint struct { // exposed public configuration sync.RWMutex // guard status - vehicleMux sync.Mutex // guard vehicle - Mode_ api.ChargeMode `mapstructure:"mode"` // Default charge mode, used for disconnect + vmu sync.RWMutex // guard vehicle + Mode_ api.ChargeMode `mapstructure:"mode"` // Default charge mode, used for disconnect Title_ string `mapstructure:"title"` // UI title Priority_ int `mapstructure:"priority"` // Priority diff --git a/core/loadpoint_api.go b/core/loadpoint_api.go index 66edaee15..157d146ee 100644 --- a/core/loadpoint_api.go +++ b/core/loadpoint_api.go @@ -418,8 +418,8 @@ func (lp *Loadpoint) setRemainingEnergy(chargeRemainingEnergy float64) { // GetVehicle gets the active vehicle func (lp *Loadpoint) GetVehicle() api.Vehicle { - lp.vehicleMux.Lock() - defer lp.vehicleMux.Unlock() + lp.vmu.RLock() + defer lp.vmu.RUnlock() return lp.vehicle } @@ -428,8 +428,8 @@ func (lp *Loadpoint) SetVehicle(vehicle api.Vehicle) { // set desired vehicle (protected by lock, no locking here) lp.setActiveVehicle(vehicle) - lp.vehicleMux.Lock() - defer lp.vehicleMux.Unlock() + lp.vmu.Lock() + defer lp.vmu.Unlock() // disable auto-detect lp.stopVehicleDetection() diff --git a/core/loadpoint_vehicle.go b/core/loadpoint_vehicle.go index 83d076dc5..94af1d3c0 100644 --- a/core/loadpoint_vehicle.go +++ b/core/loadpoint_vehicle.go @@ -101,7 +101,7 @@ func (lp *Loadpoint) selectVehicleByID(id string) api.Vehicle { // setActiveVehicle assigns currently active vehicle, configures soc estimator // and adds an odometer task func (lp *Loadpoint) setActiveVehicle(v api.Vehicle) { - lp.vehicleMux.Lock() + lp.vmu.Lock() from := "unknown" if lp.vehicle != nil { @@ -115,7 +115,7 @@ func (lp *Loadpoint) setActiveVehicle(v api.Vehicle) { } lp.vehicle = v - lp.vehicleMux.Unlock() + lp.vmu.Unlock() if from != to { lp.log.INFO.Printf("vehicle updated: %s -> %s", from, to)