aboutsummaryrefslogtreecommitdiff
path: root/libgo/go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go')
-rw-r--r--libgo/go/runtime/cgo_gccgo.go2
-rw-r--r--libgo/go/runtime/proc.go2
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