1
0
mirror of https://github.com/golang/go synced 2024-11-27 05:11:22 -07:00

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 <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Austin Clements 2017-06-13 10:33:24 -04:00
parent b488073d51
commit 200d0cc192
2 changed files with 2 additions and 4 deletions

View File

@ -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
}

View File

@ -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
}