waitReasonGCWeakToStrongWait // "GC weak to strong wait"
waitReasonSynctestRun // "synctest.Run"
waitReasonSynctestWait // "synctest.Wait"
- waitReasonSynctestChanReceive // "chan receive (synctest)"
- waitReasonSynctestChanSend // "chan send (synctest)"
- waitReasonSynctestSelect // "select (synctest)"
- waitReasonSynctestWaitGroupWait // "sync.WaitGroup.Wait (synctest)"
+ waitReasonSynctestChanReceive // "chan receive (durable)"
+ waitReasonSynctestChanSend // "chan send (durable)"
+ waitReasonSynctestSelect // "select (durable)"
+ waitReasonSynctestWaitGroupWait // "sync.WaitGroup.Wait (durable)"
waitReasonCleanupWait // "cleanup wait"
)
waitReasonGCWeakToStrongWait: "GC weak to strong wait",
waitReasonSynctestRun: "synctest.Run",
waitReasonSynctestWait: "synctest.Wait",
- waitReasonSynctestChanReceive: "chan receive (synctest)",
- waitReasonSynctestChanSend: "chan send (synctest)",
- waitReasonSynctestSelect: "select (synctest)",
- waitReasonSynctestWaitGroupWait: "sync.WaitGroup.Wait (synctest)",
+ waitReasonSynctestChanReceive: "chan receive (durable)",
+ waitReasonSynctestChanSend: "chan send (durable)",
+ waitReasonSynctestSelect: "select (durable)",
+ waitReasonSynctestWaitGroupWait: "sync.WaitGroup.Wait (durable)",
waitReasonCleanupWait: "cleanup wait",
}
}
var (
- allm *m
- gomaxprocs int32
- numCPUStartup int32
- forcegc forcegcstate
- sched schedt
- newprocs int32
+ allm *m
+ gomaxprocs int32
+ numCPUStartup int32
+ forcegc forcegcstate
+ sched schedt
+ newprocs int32
)
var (
if isScan {
print(" (scan)")
}
+ if bubble := gp.bubble; bubble != nil &&
+ gp.waitreason.isIdleInSynctest() &&
+ !stringslite.HasSuffix(status, "(durable)") {
+ // If this isn't a status where the name includes a (durable)
+ // suffix to distinguish it from the non-durable form, add it here.
+ print(" (durable)")
+ }
if waitfor >= 1 {
print(", ", waitfor, " minutes")
}
print(", locked to thread")
}
if bubble := gp.bubble; bubble != nil {
- print(", synctest bubble ", bubble.root.goid, ", ")
- if !gp.waitreason.isIdleInSynctest() {
- print("not ")
- }
- print("durably blocked")
+ print(", synctest bubble ", bubble.id)
}
print("]:\n")
}