13994: Fix deadlock in keepstore tests.
[arvados.git] / sdk / go / keepclient / discover.go
index 2140dceabbdfb320addb6193b0efcc4969b7cc0f..6778b39fbc8369fbcae4646071aa49dd19227f74 100644 (file)
@@ -23,7 +23,10 @@ func RefreshServiceDiscovery() {
        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),
-                       clear:  make(chan struct{}),
+                       clear:  make(chan struct{}, 1),
                        arv:    &arv,
                }
                go cacheEnt.poll()