aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorShenghou Ma <minux@golang.org>2015-03-23 23:13:11 -0400
committerMinux Ma <minux@golang.org>2015-03-26 19:58:14 +0000
commit400f58a0101717639dafea2f80740bbfb250573c (patch)
treedbf88f7cbcbb4002223c11724380ce9f5ee2e9d8 /src/runtime
parent8537ccdd7ff42aac384f278d55f975ba447f16fd (diff)
downloadgo-400f58a0101717639dafea2f80740bbfb250573c.tar.xz
runtime: don't trigger write barrier in newosproc for nacl
This should fix the intermittent calling write barrier with mp.p == nil failures on the nacl/386 builder. Change-Id: I34aef5ca75ccd2939e6a6ad3f5dacec64903074e Signed-off-by: Shenghou Ma <minux@golang.org> Reviewed-on: https://go-review.googlesource.com/7973 Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/os1_nacl.go8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/runtime/os1_nacl.go b/src/runtime/os1_nacl.go
index d47d2727f7..b3759c1408 100644
--- a/src/runtime/os1_nacl.go
+++ b/src/runtime/os1_nacl.go
@@ -67,11 +67,11 @@ func usleep(us uint32) {
func mstart_nacl()
+//go:nowritebarrier
func newosproc(mp *m, stk unsafe.Pointer) {
- tls := (*[3]unsafe.Pointer)(unsafe.Pointer(&mp.tls))
- tls[0] = unsafe.Pointer(mp.g0)
- tls[1] = unsafe.Pointer(mp)
- ret := nacl_thread_create(funcPC(mstart_nacl), stk, unsafe.Pointer(&tls[2]), nil)
+ mp.tls[0] = uintptr(unsafe.Pointer(mp.g0))
+ mp.tls[1] = uintptr(unsafe.Pointer(mp))
+ ret := nacl_thread_create(funcPC(mstart_nacl), stk, unsafe.Pointer(&mp.tls[2]), nil)
if ret < 0 {
print("nacl_thread_create: error ", -ret, "\n")
throw("newosproc")