From: Russ Cox Date: Tue, 2 Sep 2014 01:55:57 +0000 (-0400) Subject: runtime: fix race detector running Go code on g0 of non-main thread X-Git-Tag: go1.4beta1~584 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=649c83530a9c3a71319ed3d2ff53d9ecf2f2fd04;p=gostls13.git 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 --- diff --git a/src/pkg/runtime/proc.c b/src/pkg/runtime/proc.c index 9143fcf596..1a82c8e541 100644 --- a/src/pkg/runtime/proc.c +++ b/src/pkg/runtime/proc.c @@ -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;