Skip to content

Commit

Permalink
rpc2, debugger: Fix comments around goroutine grouping
Browse files Browse the repository at this point in the history
  • Loading branch information
andreimatei committed May 20, 2023
1 parent faebde1 commit 2995d74
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
19 changes: 14 additions & 5 deletions service/debugger/debugger.go
Original file line number Diff line number Diff line change
Expand Up @@ -1683,10 +1683,19 @@ func formatLoc(loc proc.Location) string {
return fmt.Sprintf("%s:%d in %s", loc.File, loc.Line, fnname)
}

// GroupGoroutines divides goroutines in gs into groups as specified by groupBy and groupByArg.
// A maximum of maxGoroutinesPerGroup are saved in each group, but the total
// number of goroutines in each group is recorded.
func (d *Debugger) GroupGoroutines(gs []*proc.G, group *api.GoroutineGroupingOptions) ([]*proc.G, []api.GoroutineGroup, bool) {
// GroupGoroutines divides goroutines in gs into groups as specified by
// group.{GroupBy,GroupByKey}. A maximum of group.MaxGroupMembers are saved in
// each group, but the total number of goroutines in each group is recorded. If
// group.MaxGroups is set, then at most that many groups are returned. If some
// groups end up being dropped because of this limit, the tooManyGroups return
// value is set.
//
// The first return value represents the goroutines that have been included in
// one of the returned groups (subject to the MaxGroupMembers and MaxGroups
// limits). The second return value represents the groups.
func (d *Debugger) GroupGoroutines(
gs []*proc.G, group *api.GoroutineGroupingOptions,
) (_ []*proc.G, _ []api.GoroutineGroup, tooManyGroups bool) {
if group.GroupBy == api.GoroutineFieldNone {
return gs, nil, false
}
Expand Down Expand Up @@ -1726,7 +1735,7 @@ func (d *Debugger) GroupGoroutines(gs []*proc.G, group *api.GoroutineGroupingOpt
}
sort.Strings(keys)

tooManyGroups := false
tooManyGroups = false
gsout := []*proc.G{}
groups := []api.GoroutineGroup{}
for _, key := range keys {
Expand Down
2 changes: 1 addition & 1 deletion service/rpc2/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -657,7 +657,7 @@ type ListGoroutinesOut struct {
// be grouped with the specified criterion.
// If the value of arg.GroupBy is GoroutineLabel goroutines will
// be grouped by the value of the label with key GroupByKey.
// For each group a maximum of MaxExamples example goroutines are
// For each group a maximum of MaxGroupMembers example goroutines are
// returned, as well as the total number of goroutines in the group.
func (s *RPCServer) ListGoroutines(arg ListGoroutinesIn, out *ListGoroutinesOut) error {
//TODO(aarzilli): if arg contains a running goroutines filter (not negated)
Expand Down

0 comments on commit 2995d74

Please sign in to comment.