runtime: make NumGoroutine and Stack agree not to include system goroutines

Before, NumGoroutine counted system goroutines and Stack (usually) didn't show them,
which was inconsistent and confusing.

To resolve which way they should be consistent, it seems like

	package main
	import "runtime"
	func main() { println(runtime.NumGoroutine()) }

should print 1 regardless of internal runtime details. Make it so.

Fixes #11706.

Change-Id: I6bfe26a901de517728192cfb26a5568c4ef4fe47
Reviewed-on: https://go-review.googlesource.com/18343
Reviewed-by: Austin Clements <austin@google.com>
This commit is contained in:
Russ Cox 2016-01-06 21:16:01 -05:00
parent 20d745c57c
commit c5bafc8281
5 changed files with 47 additions and 1 deletions

15
src/runtime/testdata/testprog/misc.go vendored Normal file
View file

@ -0,0 +1,15 @@
// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import "runtime"
func init() {
register("NumGoroutine", NumGoroutine)
}
func NumGoroutine() {
println(runtime.NumGoroutine())
}