mirror of
https://github.com/golang/go
synced 2024-11-17 08:24:43 -07:00
runtime/pprof: slow new goroutine launches in test
The goroutine profiler tests include one that launches a steady stream of goroutines. That creates a scheduler busy loop that can prevent forward progress in the rest of the program. Slow down the launches a bit so other goroutines have a chance to run. Fixes #52916 For #52934 Change-Id: I748557201b94918b1fa4960544a51a48d9cacc6b Reviewed-on: https://go-review.googlesource.com/c/go/+/406654 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: Bryan Mills <bcmills@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
parent
ab8d7dd75e
commit
6ec46f4707
@ -1527,6 +1527,10 @@ func TestGoroutineProfileConcurrency(t *testing.T) {
|
|||||||
SetGoroutineLabels(WithLabels(ctx, Labels(t.Name()+"-churn-i", fmt.Sprint(i))))
|
SetGoroutineLabels(WithLabels(ctx, Labels(t.Name()+"-churn-i", fmt.Sprint(i))))
|
||||||
if i == 0 {
|
if i == 0 {
|
||||||
ready.Done()
|
ready.Done()
|
||||||
|
} else if i%16 == 0 {
|
||||||
|
// Yield on occasion so this sequence of goroutine launches
|
||||||
|
// doesn't monopolize a P. See issue #52934.
|
||||||
|
runtime.Gosched()
|
||||||
}
|
}
|
||||||
if ctx.Err() == nil {
|
if ctx.Err() == nil {
|
||||||
go churn(i + 1)
|
go churn(i + 1)
|
||||||
|
Loading…
Reference in New Issue
Block a user