Przeglądaj źródła

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

Jakob Borg 10 lat temu
rodzic
commit
f3dc78d457
1 zmienionych plików z 2 dodań i 1 usunięć
  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
 }