aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/go/gofrontend/MERGE2
-rw-r--r--libgo/runtime/go-cgo.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index 038e434..9bebd30 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -1,4 +1,4 @@
-1c3747d20789c73447ff71cbc739f7423c4bdf67
+156f5f0152797ac2afe5f23803aeb3c7b8f8418e
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
diff --git a/libgo/runtime/go-cgo.c b/libgo/runtime/go-cgo.c
index a36eac9..610bcf5e 100644
--- a/libgo/runtime/go-cgo.c
+++ b/libgo/runtime/go-cgo.c
@@ -41,6 +41,8 @@ syscall_cgocall ()
if (runtime_needextram && runtime_cas (&runtime_needextram, 1, 0))
runtime_newextram ();
+ runtime_lockOSThread();
+
m = runtime_m ();
++m->ncgocall;
g = runtime_g ();
@@ -70,6 +72,8 @@ syscall_cgocalldone ()
_cgo_panic will already have exited syscall mode. */
if (g->status == Gsyscall)
runtime_exitsyscall ();
+
+ runtime_unlockOSThread();
}
/* Call back from C/C++ code to Go code. */