in plugins/internal/plugin/deletion_watcher.go [46:77]
func (d *DeletionWatcher) watch() {
// Ensure the underlying filesystem watcher is closed when we are done
defer d.watcher.Close()
// Ensure the channels are closed when we are done
defer close(d.Deleted)
defer close(d.Errors)
// Process events and errors
for {
select {
case event, ok := <-d.watcher.Events:
if !ok {
return
}
// Check whether the event is a deletion event
if event.Op&fsnotify.Remove == fsnotify.Remove {
d.Deleted <- struct{}{}
return
}
case err, ok := <-d.watcher.Errors:
if !ok {
return
}
d.Errors <- err
}
}
}