fix cond unlock (#394)

This commit is contained in:
Jun
2023-06-25 09:39:42 +08:00
committed by GitHub
parent 39cab9d724
commit 5e2d62406b

View File

@@ -115,6 +115,7 @@ func (p *NacosAddressProvider) GetNacosAddress(oldAddress string) <-chan string
go func() {
var addr string
p.cond.L.Lock()
defer p.cond.L.Unlock()
log.Debugf("get nacos address, p.nacosAddr, oldAddress", p.nacosAddr, oldAddress)
for p.nacosAddr == oldAddress || p.nacosAddr == "" {
if p.isStop.Load() {
@@ -123,7 +124,6 @@ func (p *NacosAddressProvider) GetNacosAddress(oldAddress string) <-chan string
p.cond.Wait()
}
addr = p.nacosAddr
p.cond.L.Unlock()
addressChan <- addr
}()
return addressChan
@@ -160,6 +160,7 @@ func (p *NacosAddressProvider) addressDiscovery() {
}
needUpdate := true
p.cond.L.Lock()
defer p.cond.L.Unlock()
for _, address := range addrVec {
ip := net.ParseIP(address)
if ip == nil {
@@ -181,5 +182,4 @@ func (p *NacosAddressProvider) addressDiscovery() {
p.nacosBackupAddr = append(p.nacosBackupAddr[:i], p.nacosBackupAddr[i+1:]...)
}
}
p.cond.L.Unlock()
}