diff options
author | Ian Lance Taylor <iant@golang.org> | 2021-04-20 21:50:13 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2021-04-20 22:47:50 +0000 |
commit | 48e3d924548ce6b96f55ff74e40f9a16449ac659 (patch) | |
tree | 217edda6af0b5dcbf8d029311271bf876e4ea38e /src/runtime/mgc.go | |
parent | c7d708e42ed4db9dd323899256d5666c5062e5ab (diff) | |
download | go-48e3d924548ce6b96f55ff74e40f9a16449ac659.tar.gz go-48e3d924548ce6b96f55ff74e40f9a16449ac659.zip |
Revert "runtime: implement runqdrain() for GC mark worker goroutines"
This reverts CL 310149.
Reason for revert: Breaks longtest builders:
https://build.golang.org/log/6af9fb147fa3101154db10e7ce055e8267cd4c93
https://build.golang.org/log/172ed6e1ec3bb503370333ee421c590fd2a72d0a
Change-Id: Iaf5a8b9eec51d0517311e050d0b0f7569759d292
Reviewed-on: https://go-review.googlesource.com/c/go/+/312129
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Diffstat (limited to 'src/runtime/mgc.go')
-rw-r--r-- | src/runtime/mgc.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go index 4585663535..601593087d 100644 --- a/src/runtime/mgc.go +++ b/src/runtime/mgc.go @@ -1273,11 +1273,15 @@ func gcBgMarkWorker() { // everything out of the run // queue so it can run // somewhere else. - if drainQ, n := runqdrain(pp); n > 0 { - lock(&sched.lock) - globrunqputbatch(&drainQ, int32(n)) - unlock(&sched.lock) + lock(&sched.lock) + for { + gp, _ := runqget(pp) + if gp == nil { + break + } + globrunqput(gp) } + unlock(&sched.lock) } // Go back to draining, this time // without preemption. |