func()

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
		}
	}
}