middleware/proxy: Make Unhealthy a pointer (#615)

Pointer updates are atomic so drop the sync.RWMutex as it is not needed
anymore. This also fixes the race introduced with dfc71df (although I
believe this is the first time we properly tested that code path).
This commit is contained in:
Miek Gieben 2017-04-13 16:26:05 +01:00 committed by GitHub
parent ef4fa66e67
commit acbf522ceb
6 changed files with 28 additions and 24 deletions

View file

@ -42,13 +42,13 @@ func TestSelect(t *testing.T) {
FailTimeout: 10 * time.Second,
MaxFails: 1,
}
upstream.Hosts[0].Unhealthy = true
upstream.Hosts[1].Unhealthy = true
upstream.Hosts[2].Unhealthy = true
*upstream.Hosts[0].Unhealthy = true
*upstream.Hosts[1].Unhealthy = true
*upstream.Hosts[2].Unhealthy = true
if h := upstream.Select(); h != nil {
t.Error("Expected select to return nil as all host are down")
}
upstream.Hosts[2].Unhealthy = false
*upstream.Hosts[2].Unhealthy = false
if h := upstream.Select(); h == nil {
t.Error("Expected select to not return nil")
}