aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2013-11-15 17:20:25 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2013-11-15 17:20:25 +0000
commit7c0f17db449e3cd0d98c40a065fce2766f2e363d (patch)
tree415fcd7d51408deb3732e1c1ad5a698ca638e4ef
parent78ec30368544d09a0cd1423b2eefc2496bb29632 (diff)
downloadgcc-7c0f17db449e3cd0d98c40a065fce2766f2e363d.zip
gcc-7c0f17db449e3cd0d98c40a065fce2766f2e363d.tar.gz
gcc-7c0f17db449e3cd0d98c40a065fce2766f2e363d.tar.bz2
runtime: Use runtime_m to get m value after call to runtime_mcall.
From-SVN: r204853
-rw-r--r--libgo/runtime/proc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
index 7011f14..de2a54b 100644
--- a/libgo/runtime/proc.c
+++ b/libgo/runtime/proc.c
@@ -1983,7 +1983,10 @@ runtime_exitsyscall(void)
#endif
gp->gcnext_sp = nil;
runtime_memclr(&gp->gcregs, sizeof gp->gcregs);
- m->p->syscalltick++;
+
+ // Don't refer to m again, we might be running on a different
+ // thread after returning from runtime_mcall.
+ runtime_m()->p->syscalltick++;
}
static bool