From 3cd6e0859c14fdd9323564e67ecb8ff301abd670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20B=C3=B6hmke?= Date: Thu, 17 Jun 2021 10:21:31 +0200 Subject: [PATCH] Fix race condition in logger initialization (#1156) --- meter/sma.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/meter/sma.go b/meter/sma.go index 30d1024ba..0a08e2850 100644 --- a/meter/sma.go +++ b/meter/sma.go @@ -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") }),