From: Austin Clements Date: Tue, 13 Jun 2017 14:33:24 +0000 (-0400) Subject: runtime: clean up some silly allp loops X-Git-Tag: go1.9beta1~34 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=200d0cc1929daa6331b552989b43d186d410d983;p=gostls13.git runtime: clean up some silly allp loops Back in the day, allp was just a pointer to an array. As a result, the runtime has a few loops of the form: for i := 0; ; i++ { p := allp[i] if p == nil { break } ... } This is silly now because it requires that allp be one longer than the maximum possible number of Ps, but now that allp is in Go it has a length. Replace these with range loops. Change-Id: I91ef4bc7bd3c9d4fda2264f4aa1b1d0271d7f578 Reviewed-on: https://go-review.googlesource.com/45571 Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/runtime/mstats.go b/src/runtime/mstats.go index 849e01860b..1cb44a15dd 100644 --- a/src/runtime/mstats.go +++ b/src/runtime/mstats.go @@ -591,8 +591,7 @@ func updatememstats() { //go:nowritebarrier func cachestats() { - for i := 0; ; i++ { - p := allp[i] + for _, p := range &allp { if p == nil { break } diff --git a/src/runtime/proc.go b/src/runtime/proc.go index 099605fe52..afedf19aed 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -3158,8 +3158,7 @@ func badunlockosthread() { func gcount() int32 { n := int32(allglen) - sched.ngfree - int32(atomic.Load(&sched.ngsys)) - for i := 0; ; i++ { - _p_ := allp[i] + for _, _p_ := range &allp { if _p_ == nil { break }