mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-05 09:44:10 +08:00
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
|
The first line of this file holds the git revision number of the last
|
||||||
merge done from the gofrontend repository.
|
merge done from the gofrontend repository.
|
||||||
|
@ -563,6 +563,14 @@ func schedinit() {
|
|||||||
|
|
||||||
sched.lastpoll = uint64(nanotime())
|
sched.lastpoll = uint64(nanotime())
|
||||||
procs := ncpu
|
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 {
|
if n, ok := atoi32(gogetenv("GOMAXPROCS")); ok && n > 0 {
|
||||||
procs = n
|
procs = n
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user