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
}