func()

in readers/apiserver/watchlist/internal/watchlist/watchlist.go [547:569]


func (r *Reader) watchEvent(ctx context.Context, ch <-chan watch.Event, stopper func()) (string, error) {
	select {
	case <-ctx.Done():
		stopper()
		return "", io.EOF
	case event, ok := <-ch:
		if !ok {
			stopper()
			return "", io.EOF
		}
		metrics.WatchEvent(ctx, event)
		switch event.Type {
		case watch.Bookmark:
			return event.Object.(metav1.Object).GetResourceVersion(), nil
		case watch.Error:
			r.log.Error(fmt.Sprintf("Watch Error: %v", event.Object))
			return "", nil
		}
		r.filterIn <- event
	}

	return "", nil
}