Commit 200d0cc1 authored by Austin Clements's avatar Austin Clements

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: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent b488073d
...@@ -591,8 +591,7 @@ func updatememstats() { ...@@ -591,8 +591,7 @@ func updatememstats() {
//go:nowritebarrier //go:nowritebarrier
func cachestats() { func cachestats() {
for i := 0; ; i++ { for _, p := range &allp {
p := allp[i]
if p == nil { if p == nil {
break break
} }
......
...@@ -3158,8 +3158,7 @@ func badunlockosthread() { ...@@ -3158,8 +3158,7 @@ func badunlockosthread() {
func gcount() int32 { func gcount() int32 {
n := int32(allglen) - sched.ngfree - int32(atomic.Load(&sched.ngsys)) n := int32(allglen) - sched.ngfree - int32(atomic.Load(&sched.ngsys))
for i := 0; ; i++ { for _, _p_ := range &allp {
_p_ := allp[i]
if _p_ == nil { if _p_ == nil {
break break
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment