From: Russ Cox Date: Sat, 15 Aug 2009 03:33:20 +0000 (-0700) Subject: runtime gc bug. X-Git-Tag: weekly.2009-11-06~861 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=b21425ddee558ecf8820a3b4564786833f3f0533;p=gostls13.git runtime gc bug. semacquire might move to another m. R=r DELTA=5 (2 added, 2 deleted, 1 changed) OCL=33317 CL=33326 --- diff --git a/src/pkg/runtime/mgc0.c b/src/pkg/runtime/mgc0.c index 52e36745fb..d27c186f41 100644 --- a/src/pkg/runtime/mgc0.c +++ b/src/pkg/runtime/mgc0.c @@ -221,8 +221,8 @@ gc(int32 force) return; //printf("gc...\n"); - m->gcing = 1; semacquire(&gcsema); + m->gcing = 1; stoptheworld(); if(mheap.Lock.key != 0) throw("mheap locked during gc"); @@ -232,6 +232,6 @@ gc(int32 force) mstats.next_gc = mstats.inuse_pages+mstats.inuse_pages*gcpercent/100; } starttheworld(); - semrelease(&gcsema); m->gcing = 0; + semrelease(&gcsema); }