From ad221202f2ae57e83d49ee08b6423069408057a7 Mon Sep 17 00:00:00 2001 From: ppeb Date: Sun, 27 Apr 2025 15:29:09 -0500 Subject: [PATCH] Cache config, lock behind mutex --- common/config.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/common/config.go b/common/config.go index 47c925c..7cb0208 100644 --- a/common/config.go +++ b/common/config.go @@ -3,6 +3,8 @@ package common import ( "encoding/xml" "os" + + "github.com/sasha-s/go-deadlock" ) type Config struct { @@ -48,10 +50,16 @@ type Config struct { ServerName string `xml:"serverName,omitempty"` } -var config Config -var configLoaded bool +var ( + config Config + configLoaded bool + cmutex = deadlock.Mutex{} +) func GetConfig() Config { + cmutex.Lock() + defer cmutex.Unlock() + if configLoaded { return config } @@ -128,5 +136,7 @@ func GetConfig() Config { config.AllowMultipleDeviceIDs = "never" } + configLoaded = true + return config }