diff --git a/registry/kubernetes/listener.go b/registry/kubernetes/listener.go index 7837233c18e364ef718b3617812cf68747785b88..528ec6486e481afe11ed5837b3138b7ec1508c06 100644 --- a/registry/kubernetes/listener.go +++ b/registry/kubernetes/listener.go @@ -38,11 +38,13 @@ type dataListener struct { listener config_center.ConfigurationListener } -// NewRegistryDataListener ... +// NewRegistryDataListener +// new the data listener, the interest url default len 16 func NewRegistryDataListener(listener config_center.ConfigurationListener) *dataListener { return &dataListener{listener: listener, interestedURL: make(map[string]*common.URL, 16)} } +// AddInterestedURL func (l *dataListener) AddInterestedURL(url *common.URL) { if _, ok := l.interestedURL[url.String()]; ok { @@ -51,6 +53,8 @@ func (l *dataListener) AddInterestedURL(url *common.URL) { l.interestedURL[url.String()] = url } +// DataChange +// notify listen, when interest event func (l *dataListener) DataChange(eventType remoting.Event) bool { url := eventType.Path[strings.Index(eventType.Path, "/providers/")+len("/providers/"):] diff --git a/registry/kubernetes/registry.go b/registry/kubernetes/registry.go index 79f066a9bdcb2e3e3136b450cebe6da37e2fc50e..14dd4a3722967d28de19c09e1e097d6eefcf7e7c 100644 --- a/registry/kubernetes/registry.go +++ b/registry/kubernetes/registry.go @@ -87,9 +87,13 @@ func (r *kubernetesRegistry) CloseAndNilClient() { } func (r *kubernetesRegistry) CloseListener() { + + r.cltLock.Lock() if r.configListener != nil { r.configListener.Close() } + r.configListener = nil + r.cltLock.Unlock() } func (r *kubernetesRegistry) CreatePath(k string) error {