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
This commit is contained in:
Ian Lance Taylor 2017-06-13 00:43:56 +00:00
parent 67972c9038
commit cd34e54306
2 changed files with 2 additions and 1 deletions

View File

@ -1,4 +1,4 @@
908fc7e46ebe36658ed86b65a3d165fccb2e8576
3b44ad058abda0d1b0b6c928987270da50ab7431
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -2251,6 +2251,7 @@ func goexit0(gp *g) {
casgstatus(gp, _Grunning, _Gdead)
if isSystemGoroutine(gp) {
atomic.Xadd(&sched.ngsys, -1)
gp.isSystemGoroutine = false
}
gp.m = nil
gp.lockedm = nil