• Austin Clements's avatar
    runtime: clean up loops over allp · e900e275
    Austin Clements authored
    allp now has length gomaxprocs, which means none of allp[i] are nil or
    in state _Pdead. This lets replace several different styles of loops
    over allp with normal range loops.
    
    for i := 0; i < gomaxprocs; i++ { ... } loops can simply range over
    allp. Likewise, range loops over allp[:gomaxprocs] can just range over
    allp.
    
    Loops that check for p == nil || p.state == _Pdead don't need to check
    this any more.
    
    Loops that check for p == nil don't have to check this *if* dead Ps
    don't affect them. I checked that all such loops are, in fact,
    unaffected by dead Ps. One loop was potentially affected, which this
    fixes by zeroing p.gcAssistTime in procresize.
    
    Updates #15131.
    
    Change-Id: Ifa1c2a86ed59892eca0610360a75bb613bc6dcee
    Reviewed-on: https://go-review.googlesource.com/45575
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    e900e275
mgc.go 71.1 KB