aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/mgc.go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2021-04-20 21:50:13 +0000
committerIan Lance Taylor <iant@golang.org>2021-04-20 22:47:50 +0000
commit48e3d924548ce6b96f55ff74e40f9a16449ac659 (patch)
tree217edda6af0b5dcbf8d029311271bf876e4ea38e /src/runtime/mgc.go
parentc7d708e42ed4db9dd323899256d5666c5062e5ab (diff)
downloadgo-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.go12
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.