aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/mgc.go
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2021-04-06 14:55:46 -0400
committerAustin Clements <austin@google.com>2021-04-06 19:55:44 +0000
commitbcc4422ee1bdb8051a6c870cf00e837814614a0f (patch)
tree3b7c9015fd0f69f39215d39cca2fe37c50f67c36 /src/runtime/mgc.go
parent1271e9a9ccfdb0906ecf69d2047ad3b470eeca02 (diff)
downloadgo-bcc4422ee1bdb8051a6c870cf00e837814614a0f.tar.gz
go-bcc4422ee1bdb8051a6c870cf00e837814614a0f.zip
runtime: deflake TestGCTestIsReachable
This is a simple workaround for a bug where runtime.GC() can return before finishing a full sweep, causing gcTestIsReachable to throw. The right thing is to fix runtime.GC(), but this should get this test passing reliably in the meantime. Updates #45315. Change-Id: Iae141e6dbb26a9c2649497c1feedd4aaeaf540c7 Reviewed-on: https://go-review.googlesource.com/c/go/+/307809 Trust: Austin Clements <austin@google.com> Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> TryBot-Result: Go Bot <gobot@golang.org>
Diffstat (limited to 'src/runtime/mgc.go')
-rw-r--r--src/runtime/mgc.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go
index 4c165ddcdb..ef3436d1f4 100644
--- a/src/runtime/mgc.go
+++ b/src/runtime/mgc.go
@@ -2391,6 +2391,11 @@ func gcTestIsReachable(ptrs ...unsafe.Pointer) (mask uint64) {
// Force a full GC and sweep.
GC()
+ // TODO(austin): Work around issue #45315. One GC() can return
+ // without finishing the sweep. Do a second to force the sweep
+ // through.
+ GC()
+
// Process specials.
for i, s := range specials {
if !s.done {