Commit cd34e543 by Ian Lance Taylor

runtime: clear isSystemGoroutine in goexit

    
    Otherwise it may be set when the g struct is reused via gfput/gfget.
    
    Test is golang.org/x/net/http2 with GOMAXPROCS=12.
    
    Reviewed-on: https://go-review.googlesource.com/45430

From-SVN: r249143
parent 67972c90
908fc7e46ebe36658ed86b65a3d165fccb2e8576 3b44ad058abda0d1b0b6c928987270da50ab7431
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -2251,6 +2251,7 @@ func goexit0(gp *g) { ...@@ -2251,6 +2251,7 @@ func goexit0(gp *g) {
casgstatus(gp, _Grunning, _Gdead) casgstatus(gp, _Grunning, _Gdead)
if isSystemGoroutine(gp) { if isSystemGoroutine(gp) {
atomic.Xadd(&sched.ngsys, -1) atomic.Xadd(&sched.ngsys, -1)
gp.isSystemGoroutine = false
} }
gp.m = nil gp.m = nil
gp.lockedm = nil gp.lockedm = nil
......
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