1
0
mirror of https://github.com/golang/go synced 2024-09-24 15:20:16 -06:00

gc: limit helper threads based on ncpu

When ncpu < 2, work.nproc is always 1 which results in infinite helper
threads being created if gomaxprocs > 1 and MaxGcproc > 1. Avoid this
by using the same limits as imposed helpgc().

R=golang-dev, rsc, dvyukov
CC=golang-dev
https://golang.org/cl/5176044
This commit is contained in:
Joel Sing 2011-10-05 12:08:28 -04:00 committed by Russ Cox
parent 528ccdc513
commit a5f064a3e1

View File

@ -984,8 +984,7 @@ runtime·gc(int32 force)
// coordinate. This lazy approach works out in practice:
// we don't mind if the first couple gc rounds don't have quite
// the maximum number of procs.
extra = work.nproc < runtime·gomaxprocs && work.nproc < MaxGcproc;
extra = work.nproc < runtime·gomaxprocs && work.nproc < runtime·ncpu && work.nproc < MaxGcproc;
runtime·starttheworld(extra);
// give the queued finalizers, if any, a chance to run