aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/api
diff options
context:
space:
mode:
authorHeschi Kreinick <heschi@google.com>2021-12-08 15:29:12 -0500
committerHeschi Kreinick <heschi@google.com>2021-12-08 21:24:34 +0000
commitbb9b20a15d637667614ec4a312f216bd4c67b76a (patch)
tree67c148321149e56bbd10962cacea7afbb52e408a /src/cmd/api
parent9e29dd42df18141506dcfc2513e8a653564fdbf1 (diff)
downloadgo-bb9b20a15d637667614ec4a312f216bd4c67b76a.tar.gz
go-bb9b20a15d637667614ec4a312f216bd4c67b76a.zip
cmd/api: run half as many go list calls in parallel
We currently run one 'go list' invocation per GOMAXPROC. Since the go command uses memory and has its own internal parallelism, that's unlikely to be an efficient use of resources. Run half as many. I suspect that's still too many but this should fix our OOMs. For #49957. Change-Id: Id06b6e0f0d96387a2a050e400f38bde6ba71aa60 Reviewed-on: https://go-review.googlesource.com/c/go/+/370376 Trust: Heschi Kreinick <heschi@google.com> Run-TryBot: Heschi Kreinick <heschi@google.com> Reviewed-by: Bryan Mills <bcmills@google.com>
Diffstat (limited to 'src/cmd/api')
-rw-r--r--src/cmd/api/goapi.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cmd/api/goapi.go b/src/cmd/api/goapi.go
index 0c61b1b489..a55e51cc9b 100644
--- a/src/cmd/api/goapi.go
+++ b/src/cmd/api/goapi.go
@@ -460,7 +460,7 @@ type listImports struct {
var listCache sync.Map // map[string]listImports, keyed by contextName
// listSem is a semaphore restricting concurrent invocations of 'go list'.
-var listSem = make(chan semToken, runtime.GOMAXPROCS(0))
+var listSem = make(chan semToken, ((runtime.GOMAXPROCS(0)-1)/2)+1)
type semToken struct{}