package watcher import ( "sync" "github.com/yusing/go-proxy/internal/common" "github.com/yusing/go-proxy/internal/task" ) var ( configDirWatcher *DirWatcher configDirWatcherMu sync.Mutex ) // 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) } return configDirWatcher.Add(filename) }