• Austin Clements's avatar
    runtime: eliminate work.markrootdone and second root marking pass · 550dfc8a
    Austin Clements authored
    Before STW and concurrent GC were unified, there could be either one
    or two root marking passes per GC cycle. There were several tasks we
    had to make sure happened once and only once (whether that was at the
    beginning of concurrent mark for concurrent GC or during mark
    termination for STW GC). We kept track of this in work.markrootdone.
    
    Now that STW and concurrent GC both use the concurrent marking code
    and we've eliminated all work done by the second root marking pass, we
    only ever need a single root marking pass. Hence, we can eliminate
    work.markrootdone and all of the code that's conditional on it.
    
    Updates #26903.
    
    Change-Id: I654a0f5e21b9322279525560a31e64b8d33b790f
    Reviewed-on: https://go-review.googlesource.com/c/134784
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarRick Hudson <rlh@golang.org>
    550dfc8a
mgcmark.go 37.3 KB