aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2017-07-18 11:21:15 -0400
committerAustin Clements <austin@google.com>2017-07-18 16:13:05 +0000
commit73d02735734e1ed1e4d1f5a7c534206596f3903a (patch)
tree9744e723f7eafa11c03ff7bf420bc86b0cf0577b
parentc2c07c798940f484eece7a57af568783f8a02839 (diff)
downloadgo-73d02735734e1ed1e4d1f5a7c534206596f3903a.tar.gz
go-73d02735734e1ed1e4d1f5a7c534206596f3903a.zip
runtime: move tSweepTerm capture closer to STW
tSweepTerm and pauseStart are supposed to be when STW was triggered, but right now they're captured a bit before STW. Move these down to immediately before we trigger STW. Fixes #19590. Change-Id: Icd48a5c4d45c9b36187ff986e4f178b5064556c1 Reviewed-on: https://go-review.googlesource.com/49612 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-rw-r--r--src/runtime/mgc.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go
index 705fe697bb..111fa781e1 100644
--- a/src/runtime/mgc.go
+++ b/src/runtime/mgc.go
@@ -1248,13 +1248,13 @@ func gcStart(mode gcMode, trigger gcTrigger) {
gcResetMarkState()
- now := nanotime()
work.stwprocs, work.maxprocs = gcprocs(), gomaxprocs
- work.tSweepTerm = now
work.heap0 = atomic.Load64(&memstats.heap_live)
work.pauseNS = 0
work.mode = mode
+ now := nanotime()
+ work.tSweepTerm = now
work.pauseStart = now
systemstack(stopTheWorldWithSema)
// Finish sweep before we start concurrent scan.