Fix race condition in logger initialization (#1156)

This commit is contained in:
Benjamin Böhmke 2021-06-17 10:21:31 +02:00 • committed by GitHub
parent b49de37a4e
commit 3cd6e0859c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -116,10 +116,15 @@ func NewSMAFromConfig(other map[string]interface{}) (api.Meter, error) {
// map of created discover instances
var discoverers = make(map[string]*smaDiscoverer)
// initialize sunny logger only once
var once sync.Once
// NewSMA creates a SMA Meter
func NewSMA(uri, password, iface string, serial uint32, scale float64) (api.Meter, error) {
log := util.NewLogger("sma")
sunny.Log = log.TRACE
once.Do(func() {
sunny.Log = log.TRACE
})
sm := &SMA{
mux: util.NewWaiter(udpTimeout, func() { log.TRACE.Println("wait for initial value") }),