diff --git a/pkg/proc/variables.go b/pkg/proc/variables.go index 97b8157f..f3891bfa 100644 --- a/pkg/proc/variables.go +++ b/pkg/proc/variables.go @@ -388,6 +388,10 @@ func FindGoroutine(dbp *Target, gid int) (*G, error) { return nil, fmt.Errorf("unknown goroutine %d", gid) } + if g := dbp.gcache.partialGCache[gid]; g != nil { + return g, nil + } + // Calling GoroutinesInfo could be slow if there are many goroutines // running, check if a running goroutine has been requested first. for _, thread := range dbp.ThreadList() { @@ -397,10 +401,6 @@ func FindGoroutine(dbp *Target, gid int) (*G, error) { } } - if g := dbp.gcache.partialGCache[gid]; g != nil { - return g, nil - } - const goroutinesInfoLimit = 10 nextg := 0 for nextg >= 0 {