diff --git a/staging/src/k8s.io/client-go/tools/cache/shared_informer.go b/staging/src/k8s.io/client-go/tools/cache/shared_informer.go index c7d6d1f1c8d..d65dba77382 100644 --- a/staging/src/k8s.io/client-go/tools/cache/shared_informer.go +++ b/staging/src/k8s.io/client-go/tools/cache/shared_informer.go @@ -726,8 +726,15 @@ func (p *sharedProcessor) distribute(obj interface{}, sync bool) { defer p.listenersLock.RUnlock() for listener, isSyncing := range p.listeners { - if !sync || isSyncing { + switch { + case !sync: + // non-sync messages are delivered to every listener listener.add(obj) + case isSyncing: + // sync messages are delivered to every syncing listenter + listener.add(obj) + default: + // skipping a sync obj for a non-syncing listener } } }