Răsfoiți Sursa

Don't deadlock after checking relay client status (fixes #2404)

Jakob Borg 10 ani în urmă
părinte
comite
f3dc78d457
1 a modificat fișierele cu 2 adăugiri și 1 ștergeri
  1. 2 1
      lib/relay/relay.go

+ 2 - 1
lib/relay/relay.go

@@ -170,12 +170,13 @@ func (s *Svc) RelayStatus(uri string) (time.Duration, bool) {
 	}
 
 	s.mut.RLock()
+	defer s.mut.RUnlock()
+
 	for _, client := range s.clients {
 		if client.URI().String() == uri {
 			return client.Latency(), client.StatusOK()
 		}
 	}
-	s.mut.RUnlock()
 
 	return time.Hour, false
 }