]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.13] runtime: call goready in wakeScavenger instead of ready
authorMichael Anthony Knyszek <mknyszek@google.com>
Mon, 14 Oct 2019 17:33:36 +0000 (17:33 +0000)
committerDmitri Shuralyov <dmitshur@golang.org>
Thu, 19 Dec 2019 20:24:04 +0000 (20:24 +0000)
This changes fixes an oversight in wakeScavenger which would cause ready
to be called off of the system stack. This change makes it so that
wakeScavenger calls goready, which switches to the system stack before
calling ready.

Fixes #36127.

Change-Id: Icb13f180b4d8fdd47c921eac1b896e3dd49e43b3
Reviewed-on: https://go-review.googlesource.com/c/go/+/200999
Run-TryBot: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
(cherry picked from commit 2c87be436bddd9b49f11959adee1ae817cb48ee1)
Reviewed-on: https://go-review.googlesource.com/c/go/+/212103
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
src/runtime/mgcscavenge.go

index c4394a3d6099e3333bd8e133c06ec4f6cb698171..c71b3be7b26cdd5e6cf09aab083add1170f7bfe9 100644 (file)
@@ -233,7 +233,7 @@ func wakeScavenger() {
                // Unpark the goroutine and tell it that there may have been a pacing
                // change.
                scavenge.parked = false
-               ready(scavenge.g, 0, true)
+               goready(scavenge.g, 0)
        }
        unlock(&scavenge.lock)
 }