diff options
Diffstat (limited to 'libgo/go')
-rw-r--r-- | libgo/go/runtime/cgo_gccgo.go | 2 | ||||
-rw-r--r-- | libgo/go/runtime/proc.go | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/libgo/go/runtime/cgo_gccgo.go b/libgo/go/runtime/cgo_gccgo.go index a55fb43..b0ad2f1 100644 --- a/libgo/go/runtime/cgo_gccgo.go +++ b/libgo/go/runtime/cgo_gccgo.go @@ -54,7 +54,7 @@ func CgocallDone() { // If we are invoked because the C function called _cgo_panic, // then _cgo_panic will already have exited syscall mode. - if gp.atomicstatus == _Gsyscall { + if readgstatus(gp)&^_Gscan == _Gsyscall { exitsyscall(0) } diff --git a/libgo/go/runtime/proc.go b/libgo/go/runtime/proc.go index 64735e2..038f20e 100644 --- a/libgo/go/runtime/proc.go +++ b/libgo/go/runtime/proc.go @@ -1459,7 +1459,7 @@ func dropm() { // gccgo sets the stack to Gdead here, because the splitstack // context is not initialized. - mp.curg.atomicstatus = _Gdead + atomic.Store(&mp.curg.atomicstatus, _Gdead) mp.curg.gcstack = nil mp.curg.gcnextsp = nil |