mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: set G wait reason more consistently
Currently, wait reasons are set somewhat inconsistently. In a follow-up CL, we're going to want to rely on the wait reason being there for casgstatus, so the status quo isn't really going to work for that. Plus this inconsistency means there are a whole bunch of cases where we could be more specific about the G's status but aren't. So, this change adds a new function, casGToWaiting which is like casgstatus but also sets the wait reason. The goal is that by using this API it'll be harder to forget to set a wait reason (or the lack thereof will at least be explicit). This change then updates all casgstatus(gp, ..., _Gwaiting) calls to casGToWaiting(gp, ..., waitReasonX) instead. For a number of these cases, we're missing a wait reason, and it wouldn't hurt to add a wait reason for them, so this change also adds those wait reasons. For #49881. Change-Id: Ia95e06ecb74ed17bb7bb94f1a362ebfe6bec1518 Reviewed-on: https://go-review.googlesource.com/c/go/+/427617 Reviewed-by: Michael Pratt <mpratt@google.com> Run-TryBot: Michael Knyszek <mknyszek@google.com> Auto-Submit: Michael Knyszek <mknyszek@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
a2c396ce00
commit
686b38b5b2
6 changed files with 27 additions and 15 deletions
|
|
@ -1060,8 +1060,11 @@ const (
|
|||
waitReasonTraceReaderBlocked // "trace reader (blocked)"
|
||||
waitReasonWaitForGCCycle // "wait for GC cycle"
|
||||
waitReasonGCWorkerIdle // "GC worker (idle)"
|
||||
waitReasonGCWorkerActive // "GC worker (active)"
|
||||
waitReasonPreempted // "preempted"
|
||||
waitReasonDebugCall // "debug call"
|
||||
waitReasonGCMarkTermination // "GC mark termination"
|
||||
waitReasonStoppingTheWorld // "stopping the world"
|
||||
)
|
||||
|
||||
var waitReasonStrings = [...]string{
|
||||
|
|
@ -1092,8 +1095,11 @@ var waitReasonStrings = [...]string{
|
|||
waitReasonTraceReaderBlocked: "trace reader (blocked)",
|
||||
waitReasonWaitForGCCycle: "wait for GC cycle",
|
||||
waitReasonGCWorkerIdle: "GC worker (idle)",
|
||||
waitReasonGCWorkerActive: "GC worker (active)",
|
||||
waitReasonPreempted: "preempted",
|
||||
waitReasonDebugCall: "debug call",
|
||||
waitReasonGCMarkTermination: "GC mark termination",
|
||||
waitReasonStoppingTheWorld: "stopping the world",
|
||||
}
|
||||
|
||||
func (w waitReason) String() string {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue