code: func (fSource *fileSource) Cleanup() error {
  
  	fSource.filelock.Lock()
  	defer fSource.filelock.Unlock()
  
  	if fileConfigSource == nil || fSource == nil {
  		return nil
  	}
  
  	if fSource.watchPool != nil && fSource.watchPool.watcher != nil {
  		fSource.watchPool.watcher.Close()
  	}
  
  	if fSource.watchPool != nil {
  		fSource.watchPool.fileSource = nil
  		fSource.watchPool.callback = nil
  		fSource.watchPool = nil
  	}
  	fSource.Configurations = nil
  	fSource.files = make([]file, 0)
  	return nil
  }
docs: //func generateKey(key, filepath string) string {
  //	return key + `#` + filepath
  //}
  //
  //func getFileKeyNPath(configKey string) []string {
  //	return strings.Split(configKey, `#`)
  //}