in ibazel/fswatcher/fsnotify/fsnotify.go [52:84]
func (w *realFSNotifyWatcher) UpdateAll(names []string) error {
var errs []string
prev_watched := w.watched
new_watched := make(map[string]struct{}, len(names))
for _, name := range names {
new_watched[name] = struct{}{}
_, ok := prev_watched[name]
if ok {
delete(w.watched, name)
} else {
err := w.wrapper.Add(name)
if err != nil {
errs = append(errs, fmt.Sprintf("Error watching file %q error: %v", name, err))
}
}
}
for name, _ := range prev_watched {
err := w.wrapper.Remove(name)
if err != nil {
errs = append(errs, fmt.Sprintf("Error unwatching file %q error: %v\n", name, err))
}
}
w.watched = new_watched
if len(errs) > 0 {
return errors.New(strings.Join(errs, "\n"))
}
return nil
}