Skip to content

Commit

Permalink
defer RUnlock
Browse files Browse the repository at this point in the history
Signed-off-by: helen <[email protected]>
  • Loading branch information
helen committed Jan 8, 2024
1 parent 65376b2 commit 44e9705
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions pkg/util/fedinformer/typedmanager/single-cluster-manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -204,14 +204,21 @@ func (s *singleClusterInformerManagerImpl) Lister(resource schema.GroupVersionRe
}
s.lock.Unlock()

s.lock.RLock()
if resourceTransformFunc, ok := s.transformFuncs[resource]; ok && !s.isInformerStarted(resource) {
err = resourceInformer.Informer().SetTransform(resourceTransformFunc)
if err != nil {
return nil, err
if err := func() error {
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 err
}
}

return nil
}(); err != nil {
return nil, err
}
s.lock.RUnlock()

if resource == nodeGVR {
return s.informerFactory.Core().V1().Nodes().Lister(), nil
Expand All @@ -233,13 +240,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() {
Expand Down

0 comments on commit 44e9705

Please sign in to comment.