refactor(watcher): simplify config file watcher initialization using sync.Once

This commit is contained in:
yusing
2026-01-22 15:27:01 +08:00
parent a1f7375e7b
commit 630629a3fd

View File

@@ -8,18 +8,17 @@ import (
)
var (
configDirWatcher *DirWatcher
configDirWatcherMu sync.Mutex
configDirWatcher *DirWatcher
configDirWatcherInitOnce sync.Once
)
func initConfigDirWatcher() {
t := task.RootTask("config_dir_watcher", false)
configDirWatcher = NewDirectoryWatcher(t, common.ConfigBasePath)
}
// create a new file watcher for file under ConfigBasePath.
func NewConfigFileWatcher(filename string) Watcher {
configDirWatcherMu.Lock()
defer configDirWatcherMu.Unlock()
if configDirWatcher == nil {
t := task.RootTask("config_dir_watcher", false)
configDirWatcher = NewDirectoryWatcher(t, common.ConfigBasePath)
}
configDirWatcherInitOnce.Do(initConfigDirWatcher)
return configDirWatcher.Add(filename)
}