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 b4e9613efe
commit 2b8d416625

View File

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