mirror of
https://github.com/safing/portbase
synced 2025-09-02 10:40:39 +00:00
Switch config change notifier to event hooking
This commit is contained in:
parent
21264f4d1f
commit
f4d19ee757
2 changed files with 8 additions and 16 deletions
|
@ -10,7 +10,12 @@ import (
|
||||||
"github.com/safing/portmaster/core/structure"
|
"github.com/safing/portmaster/core/structure"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
configChangeEvent = "config change"
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
module *modules.Module
|
||||||
dataRoot *utils.DirStructure
|
dataRoot *utils.DirStructure
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -22,7 +27,8 @@ func SetDataRoot(root *utils.DirStructure) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
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 {
|
func prep() error {
|
||||||
|
|
|
@ -17,9 +17,6 @@ var (
|
||||||
|
|
||||||
validityFlag = abool.NewBool(true)
|
validityFlag = abool.NewBool(true)
|
||||||
validityFlagLock sync.RWMutex
|
validityFlagLock sync.RWMutex
|
||||||
|
|
||||||
changedSignal = make(chan struct{})
|
|
||||||
changedSignalLock sync.Mutex
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func getValidityFlag() *abool.AtomicBool {
|
func getValidityFlag() *abool.AtomicBool {
|
||||||
|
@ -28,13 +25,6 @@ func getValidityFlag() *abool.AtomicBool {
|
||||||
return validityFlag
|
return validityFlag
|
||||||
}
|
}
|
||||||
|
|
||||||
// Changed signals if any config option was changed.
|
|
||||||
func Changed() <-chan struct{} {
|
|
||||||
changedSignalLock.Lock()
|
|
||||||
defer changedSignalLock.Unlock()
|
|
||||||
return changedSignal
|
|
||||||
}
|
|
||||||
|
|
||||||
func signalChanges() {
|
func signalChanges() {
|
||||||
// refetch and save release level and expertise level
|
// refetch and save release level and expertise level
|
||||||
updateReleaseLevel()
|
updateReleaseLevel()
|
||||||
|
@ -46,11 +36,7 @@ func signalChanges() {
|
||||||
validityFlag = abool.NewBool(true)
|
validityFlag = abool.NewBool(true)
|
||||||
validityFlagLock.Unlock()
|
validityFlagLock.Unlock()
|
||||||
|
|
||||||
// trigger change signal: signal listeners that a config option was changed.
|
module.TriggerEvent(configChangeEvent, nil)
|
||||||
changedSignalLock.Lock()
|
|
||||||
close(changedSignal)
|
|
||||||
changedSignal = make(chan struct{})
|
|
||||||
changedSignalLock.Unlock()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// setConfig sets the (prioritized) user defined config.
|
// setConfig sets the (prioritized) user defined config.
|
||||||
|
|
Loading…
Add table
Reference in a new issue