From a3aa03acf0a748addd6bbc3c0fd4d123c9f075a3 Mon Sep 17 00:00:00 2001 From: Jorge Marey Date: Sun, 29 Mar 2020 20:34:04 +0200 Subject: [PATCH] Add new setUpstreamsLocked function to avoid lock --- client/taskenv/env.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/client/taskenv/env.go b/client/taskenv/env.go index 8612651c3..f41609021 100644 --- a/client/taskenv/env.go +++ b/client/taskenv/env.go @@ -656,7 +656,7 @@ func (b *Builder) setAlloc(alloc *structs.Allocation) *Builder { } } if len(upstreams) > 0 { - b.SetUpstreams(upstreams) + b.setUpstreamsLocked(upstreams) } return b @@ -752,8 +752,12 @@ func buildPortEnv(envMap map[string]string, p structs.Port, ip string, driverNet // SetUpstreams defined by connect enabled group services func (b *Builder) SetUpstreams(upstreams []structs.ConsulUpstream) *Builder { b.mu.Lock() + defer b.mu.Unlock() + return b.setUpstreamsLocked(upstreams) +} + +func (b *Builder) setUpstreamsLocked(upstreams []structs.ConsulUpstream) *Builder { b.upstreams = upstreams - b.mu.Unlock() return b }