From d3f75c82b5f79fef759fb7a0fec5fc0bf50fb51d Mon Sep 17 00:00:00 2001 From: Chao Wang Date: Fri, 21 Oct 2022 14:13:38 +0800 Subject: [PATCH] update --- extension/registry.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/extension/registry.go b/extension/registry.go index 06157637afae9..4e838181f9b56 100644 --- a/extension/registry.go +++ b/extension/registry.go @@ -34,14 +34,10 @@ type registry struct { func (r *registry) Setup() error { r.Lock() defer r.Unlock() - if r.setup { - return nil - } if _, err := r.doSetup(); err != nil { return err } - return nil } @@ -55,7 +51,7 @@ func (r *registry) Extensions() (*Extensions, error) { } r.RUnlock() - r.RLock() + r.Lock() defer r.Unlock() return r.doSetup() } @@ -89,6 +85,10 @@ func (r *registry) RegisterFactory(name string, factory func() ([]Option, error) // Setup setups all extensions func (r *registry) doSetup() (_ *Extensions, err error) { + if r.setup { + return r.extensions, nil + } + if len(r.factories) == 0 { r.extensions = nil r.setup = true