• Austin Clements's avatar
    runtime: fix transient _Gwaiting states in newstack · 3c2a21ff
    Austin Clements authored
    With concurrent stack shrinking, the stack can move the instant after
    a G enters _Gwaiting. There are only two places that put a G into
    _Gwaiting: gopark and newstack. We fixed uses of gopark. This commit
    fixes newstack by simplifying its G transitions and, in particular,
    eliminating or narrowing the transient _Gwaiting states it passes
    through so it's clear nothing in the G is accessed while in _Gwaiting.
    
    For #12967.
    
    Change-Id: I2440ead411d2bc61beb1e2ab020ebe3cb3481af9
    Reviewed-on: https://go-review.googlesource.com/20039Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    3c2a21ff
stack.go 30.7 KB