runtime: on 32-bit systems, limit default GOMAXPROCS to 32
Otherwise we can easily run out of stack space for threads. The user can still override by setting GOMAXPROCS. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/219278
This commit is contained in:
parent
5599262661
commit
17edb3310d
@ -1,4 +1,4 @@
|
||||
c94637ad6fd38d4814fb02d094a1a73f19323d71
|
||||
3e46519cee5c916a9b39480fbac13f4ffc6a93b0
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
@ -563,6 +563,14 @@ func schedinit() {
|
||||
|
||||
sched.lastpoll = uint64(nanotime())
|
||||
procs := ncpu
|
||||
|
||||
// In 32-bit mode, we can burn a lot of memory on thread stacks.
|
||||
// Try to avoid this by limiting the number of threads we run
|
||||
// by default.
|
||||
if sys.PtrSize == 4 && procs > 32 {
|
||||
procs = 32
|
||||
}
|
||||
|
||||
if n, ok := atoi32(gogetenv("GOMAXPROCS")); ok && n > 0 {
|
||||
procs = n
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user