projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
13994: Fix deadlock in keepstore tests.
[arvados.git]
/
sdk
/
go
/
keepclient
/
discover.go
diff --git
a/sdk/go/keepclient/discover.go
b/sdk/go/keepclient/discover.go
index 2140dceabbdfb320addb6193b0efcc4969b7cc0f..6778b39fbc8369fbcae4646071aa49dd19227f74 100644
(file)
--- a/
sdk/go/keepclient/discover.go
+++ b/
sdk/go/keepclient/discover.go
@@
-23,7
+23,10
@@
func RefreshServiceDiscovery() {
svcListCacheMtx.Lock()
defer svcListCacheMtx.Unlock()
for _, ent := range svcListCache {
svcListCacheMtx.Lock()
defer svcListCacheMtx.Unlock()
for _, ent := range svcListCache {
- ent.clear <- struct{}{}
+ select {
+ case ent.clear <- struct{}{}:
+ default:
+ }
}
}
}
}
@@
-136,7
+139,7
@@
func (kc *KeepClient) discoverServices() error {
arv := *kc.Arvados
cacheEnt = cachedSvcList{
latest: make(chan svcList),
arv := *kc.Arvados
cacheEnt = cachedSvcList{
latest: make(chan svcList),
- clear: make(chan struct{}),
+ clear: make(chan struct{}
, 1
),
arv: &arv,
}
go cacheEnt.poll()
arv: &arv,
}
go cacheEnt.poll()