summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/reverseproxy/selectionpolicies.go
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2021-02-25 09:41:52 -0700
committerMatthew Holt <mholt@users.noreply.github.com>2021-02-25 09:41:52 -0700
commitce5a0934a89aabf1bc145ed0100df5f889b7dd74 (patch)
tree6346dcea84752e27deede2e16c31fc52d2e5dabb /modules/caddyhttp/reverseproxy/selectionpolicies.go
parentb54fa4123975195c721ff5a5c0b43c4622009676 (diff)
reverseproxy: Fix round robin data race (#4038)
Diffstat (limited to 'modules/caddyhttp/reverseproxy/selectionpolicies.go')
-rw-r--r--modules/caddyhttp/reverseproxy/selectionpolicies.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/caddyhttp/reverseproxy/selectionpolicies.go b/modules/caddyhttp/reverseproxy/selectionpolicies.go
index e86e97e..dacfd11 100644
--- a/modules/caddyhttp/reverseproxy/selectionpolicies.go
+++ b/modules/caddyhttp/reverseproxy/selectionpolicies.go
@@ -221,8 +221,8 @@ func (r *RoundRobinSelection) Select(pool UpstreamPool, _ *http.Request, _ http.
return nil
}
for i := uint32(0); i < n; i++ {
- atomic.AddUint32(&r.robin, 1)
- host := pool[r.robin%n]
+ robin := atomic.AddUint32(&r.robin, 1)
+ host := pool[robin%n]
if host.Available() {
return host
}