X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fruntime%2Fmgc.go;h=30d2f1d3852b4430c6ac2039e5a0f3d1dcf43ba3;hb=f119abb65dbe42f6cb40db698b54be3668357934;hp=8a4c58888ed4745bb1e6151434160193474a2fba;hpb=e3585c67576bc1b0b161448b617eb2725e9c9d69;p=gostls13.git diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go index 8a4c58888e..30d2f1d385 100644 --- a/src/runtime/mgc.go +++ b/src/runtime/mgc.go @@ -647,8 +647,10 @@ func gcStart(trigger gcTrigger) { // Update it under gcsema to avoid gctrace getting wrong values. work.userForced = trigger.kind == gcTriggerCycle - if traceEnabled() { - traceGCStart() + trace := traceAcquire() + if trace.ok() { + trace.GCStart() + traceRelease(trace) } // Check that all Ps have finished deferred mcache flushes. @@ -989,8 +991,10 @@ func gcMarkTermination() { mp.traceback = 0 casgstatus(curgp, _Gwaiting, _Grunning) - if traceEnabled() { - traceGCDone() + trace := traceAcquire() + if trace.ok() { + trace.GCDone() + traceRelease(trace) } // all done