aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/debug.go
diff options
context:
space:
mode:
authorRichard Musiol <mail@richard-musiol.de>2018-03-31 23:14:17 +0200
committerBrad Fitzpatrick <bradfitz@golang.org>2018-05-08 00:17:34 +0000
commit35ea62468bf7e3a79011c3ad713e847daa9a45a2 (patch)
tree60e4870507f6d9bae6ed07539db29f650a6e10b5 /src/runtime/debug.go
parentcc0aaff40e02192356ccb65d8acf571d12f74a95 (diff)
downloadgo-35ea62468bf7e3a79011c3ad713e847daa9a45a2.tar.xz
runtime: add js/wasm architecture
This commit adds the js/wasm architecture to the runtime package. Currently WebAssembly has no support for threads yet, see https://github.com/WebAssembly/design/issues/1073. Because of that, there is no preemption of goroutines and no sysmon goroutine. Design doc: https://docs.google.com/document/d/131vjr4DH6JFnb-blm_uRdaC0_Nv3OUwjEY5qVCxCup4 About WebAssembly assembly files: https://docs.google.com/document/d/1GRmy3rA4DiYtBlX-I1Jr_iHykbX8EixC3Mq0TCYqbKc Updates #18892 Change-Id: I7f12d21b5180500d55ae9fd2f7e926a1731db391 Reviewed-on: https://go-review.googlesource.com/103877 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'src/runtime/debug.go')
-rw-r--r--src/runtime/debug.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/runtime/debug.go b/src/runtime/debug.go
index feacfb6026..06bf0fa831 100644
--- a/src/runtime/debug.go
+++ b/src/runtime/debug.go
@@ -15,6 +15,10 @@ import (
// The number of logical CPUs on the local machine can be queried with NumCPU.
// This call will go away when the scheduler improves.
func GOMAXPROCS(n int) int {
+ if GOARCH == "wasm" && n > 1 {
+ n = 1 // WebAssembly has no threads yet, so only one CPU is possible.
+ }
+
lock(&sched.lock)
ret := int(gomaxprocs)
unlock(&sched.lock)