diff --git a/pkg/util/fedinformer/typedmanager/single-cluster-manager.go b/pkg/util/fedinformer/typedmanager/single-cluster-manager.go index f3e5df748..ea8d7006a 100644 --- a/pkg/util/fedinformer/typedmanager/single-cluster-manager.go +++ b/pkg/util/fedinformer/typedmanager/single-cluster-manager.go @@ -205,13 +205,13 @@ func (s *singleClusterInformerManagerImpl) Lister(resource schema.GroupVersionRe s.lock.Unlock() s.lock.RLock() + defer s.lock.RUnlock() if resourceTransformFunc, ok := s.transformFuncs[resource]; ok && !s.isInformerStarted(resource) { err = resourceInformer.Informer().SetTransform(resourceTransformFunc) if err != nil { return nil, err } } - s.lock.RUnlock() if resource == nodeGVR { return s.informerFactory.Core().V1().Nodes().Lister(), nil @@ -233,13 +233,13 @@ func (s *singleClusterInformerManagerImpl) appendHandler(resource schema.GroupVe func (s *singleClusterInformerManagerImpl) Start() { s.lock.Lock() + defer s.lock.Unlock() s.informerFactory.Start(s.ctx.Done()) for resource := range s.informers { if _, exist := s.startedInformers[resource]; !exist { s.startedInformers[resource] = struct{}{} } } - s.lock.Unlock() } func (s *singleClusterInformerManagerImpl) Stop() {