From: Russ Cox Date: Wed, 3 Sep 2014 16:48:32 +0000 (-0400) Subject: runtime: remove guard against uninitialized forcegc.g X-Git-Tag: go1.4beta1~560 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=176c44699b5be7861070c01856494b6b94ff918a;p=gostls13.git runtime: remove guard against uninitialized forcegc.g The race was in the old C code. The new Go code does not have the race and does not need the check. LGTM=bradfitz, dvyukov R=golang-codereviews, bradfitz, dvyukov CC=golang-codereviews, rlh https://golang.org/cl/140180043 --- diff --git a/src/pkg/runtime/proc.c b/src/pkg/runtime/proc.c index b159215d1b..71ea89705b 100644 --- a/src/pkg/runtime/proc.c +++ b/src/pkg/runtime/proc.c @@ -2955,12 +2955,9 @@ sysmon(void) lastgc = runtime·atomicload64(&mstats.last_gc); if(lastgc != 0 && unixnow - lastgc > forcegcperiod && runtime·atomicload(&runtime·forcegc.idle)) { runtime·lock(&runtime·forcegc.lock); - if(runtime·forcegc.g != nil) { - // Goroutine may be started but has not initialized g yet. - runtime·forcegc.idle = 0; - runtime·forcegc.g->schedlink = nil; - injectglist(runtime·forcegc.g); - } + runtime·forcegc.idle = 0; + runtime·forcegc.g->schedlink = nil; + injectglist(runtime·forcegc.g); runtime·unlock(&runtime·forcegc.lock); }