use runtime/debug.Stack() in leak detect test (#2757)

This commit is contained in:
Karthic Rao 2016-09-22 10:34:35 +05:30 committed by Harshavardhana
parent b8903d842c
commit f7430ec09c

View file

@ -8,7 +8,7 @@
package cmd
import (
"runtime"
"runtime/debug"
"sort"
"strings"
"time"
@ -126,9 +126,8 @@ func isIgnoredStackFn(stack string) (ok bool) {
// pickRelevantGoroutines returns all goroutines we care about for the purpose
// of leak checking. It excludes testing or runtime ones.
func pickRelevantGoroutines() (gs []string) {
// make a large buffer to hold the runtime stack info.
buf := make([]byte, 2<<20)
buf = buf[:runtime.Stack(buf, true)]
// get runtime stack buffer.
buf := debug.Stack()
// runtime stack of go routines will be listed with 2 blank spaces between each of them, so split on "\n\n" .
for _, g := range strings.Split(string(buf), "\n\n") {
// Again split on a new line, the first line of the second half contaisn the info about the go routine.