]> Cypherpunks.ru repositories - gostls13.git/commitdiff
runtime: tricky replacements of _g_ in mgc.go
authorMichael Pratt <mpratt@google.com>
Wed, 20 Jul 2022 16:59:03 +0000 (12:59 -0400)
committerMichael Pratt <mpratt@google.com>
Tue, 2 Aug 2022 18:51:17 +0000 (18:51 +0000)
getg() is used primarily for gp.m, so use mp. gp.m.curg is also used,
name that curgp.

Change-Id: I9db2dc4adce2b17d6b41c60d4f2dfbc9aa41fac1
Reviewed-on: https://go-review.googlesource.com/c/go/+/418578
Run-TryBot: Michael Pratt <mpratt@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
src/runtime/mgc.go

index 5c1069eed765153b8505e5d486cffa0a0cf57de0..84a7216b108e5b4a50af3bd793628ddcb140a6e7 100644 (file)
@@ -929,11 +929,10 @@ func gcMarkTermination() {
 
        mp := acquirem()
        mp.preemptoff = "gcing"
-       _g_ := getg()
-       _g_.m.traceback = 2
-       gp := _g_.m.curg
-       casgstatus(gp, _Grunning, _Gwaiting)
-       gp.waitreason = waitReasonGarbageCollection
+       mp.traceback = 2
+       curgp := mp.curg
+       casgstatus(curgp, _Grunning, _Gwaiting)
+       curgp.waitreason = waitReasonGarbageCollection
 
        // Run gc on the g0 stack. We do this so that the g stack
        // we're currently running on will no longer change. Cuts
@@ -972,8 +971,8 @@ func gcMarkTermination() {
                gcSweep(work.mode)
        })
 
-       _g_.m.traceback = 0
-       casgstatus(gp, _Gwaiting, _Grunning)
+       mp.traceback = 0
+       casgstatus(curgp, _Gwaiting, _Grunning)
 
        if trace.enabled {
                traceGCDone()