mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-24 17:28:31 +02:00
refactor(watcher): simplify config file watcher initialization using sync.Once
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user