runtime: fix race detector running Go code on g0 of non-main thread

It looks like this has just always been broken:
the race detector handles running Go code on g0 of the main thread
and on g0 of any extra threads created by non-Go code, but it does
not handle running Go code on g0 of non-main threads created by Go.
Handle that.

Should fix the race build failures on the dashboard.

We're running into this now because we are running more
and more Go code on g0.

TBR=dvyukov
CC=golang-codereviews
https://golang.org/cl/137910043
This commit is contained in:
Russ Cox 2014-09-01 21:55:57 -04:00
parent 5dd9d582f1
commit 649c83530a
1 changed files with 2 additions and 0 deletions

View File

@ -1077,6 +1077,8 @@ newm(void(*fn)(void), P *p)
mp = runtime·allocm(p);
mp->nextp = p;
mp->mstartfn = fn;
if(raceenabled)
mp->g0->racectx = runtime·racegostart(newm);
if(runtime·iscgo) {
CgoThreadStart ts;