Switch config change notifier to event hooking

This commit is contained in:
Daniel 2019-10-09 16:36:26 +02:00
parent 21264f4d1f
commit f4d19ee757
2 changed files with 8 additions and 16 deletions

View file

@ -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 {

View file

@ -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.