From f4d19ee7574cab7baf14498a992b9e3e93ed5beb Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 9 Oct 2019 16:36:26 +0200 Subject: [PATCH] Switch config change notifier to event hooking --- config/main.go | 8 +++++++- config/set.go | 16 +--------------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/config/main.go b/config/main.go index 5267634..a37f8f6 100644 --- a/config/main.go +++ b/config/main.go @@ -10,7 +10,12 @@ import ( "github.com/safing/portmaster/core/structure" ) +const ( + configChangeEvent = "config change" +) + var ( + module *modules.Module dataRoot *utils.DirStructure ) @@ -22,7 +27,8 @@ func SetDataRoot(root *utils.DirStructure) { } func init() { - modules.Register("config", prep, start, nil, "base", "database") + module = modules.Register("config", prep, start, nil, "base", "database") + module.RegisterEvent(configChangeEvent) } func prep() error { diff --git a/config/set.go b/config/set.go index 37aece9..8e55714 100644 --- a/config/set.go +++ b/config/set.go @@ -17,9 +17,6 @@ var ( validityFlag = abool.NewBool(true) validityFlagLock sync.RWMutex - - changedSignal = make(chan struct{}) - changedSignalLock sync.Mutex ) func getValidityFlag() *abool.AtomicBool { @@ -28,13 +25,6 @@ func getValidityFlag() *abool.AtomicBool { return validityFlag } -// Changed signals if any config option was changed. -func Changed() <-chan struct{} { - changedSignalLock.Lock() - defer changedSignalLock.Unlock() - return changedSignal -} - func signalChanges() { // refetch and save release level and expertise level updateReleaseLevel() @@ -46,11 +36,7 @@ func signalChanges() { validityFlag = abool.NewBool(true) validityFlagLock.Unlock() - // trigger change signal: signal listeners that a config option was changed. - changedSignalLock.Lock() - close(changedSignal) - changedSignal = make(chan struct{}) - changedSignalLock.Unlock() + module.TriggerEvent(configChangeEvent, nil) } // setConfig sets the (prioritized) user defined config.