Commit ebc5513b authored by Russ Cox's avatar Russ Cox

runtime: in newstack, double-check calling goroutine

Checking this condition helped me find the arm problem last night.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/12267043
parent b8b48abe
...@@ -201,6 +201,13 @@ runtime·newstack(void) ...@@ -201,6 +201,13 @@ runtime·newstack(void)
bool reflectcall; bool reflectcall;
uintptr free; uintptr free;
if(m->morebuf.g != m->curg) {
runtime·printf("runtime: newstack called from g=%p\n"
"\tm=%p m->curg=%p m->g0=%p m->gsignal=%p\n",
m->morebuf.g, m, m->curg, m->g0, m->gsignal);
runtime·throw("runtime: wrong goroutine in newstack");
}
// gp->status is usually Grunning, but it could be Gsyscall if a stack split // gp->status is usually Grunning, but it could be Gsyscall if a stack split
// happens during a function call inside entersyscall. // happens during a function call inside entersyscall.
gp = m->curg; gp = m->curg;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment