aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pratt <mpratt@google.com>2022-07-20 11:18:15 -0400
committerMichael Pratt <mpratt@google.com>2022-08-02 18:51:01 +0000
commit0ad2ec6596afc51341fa3059528d89a0508956ab (patch)
tree00001ee14e792dbee19ba74656f3ecb1b8a211fa
parent7e952962dff6aafb9ed888a86a7208f01fbe9508 (diff)
downloadgo-0ad2ec6596afc51341fa3059528d89a0508956ab.tar.gz
go-0ad2ec6596afc51341fa3059528d89a0508956ab.zip
runtime: clean up dopanic_m
gp is a user G running on the same M as getg(), so it is a fine proxy for gp.m. Change-Id: I9aa1dd283ecf28878eeedd7da4ded5c901809832 Reviewed-on: https://go-review.googlesource.com/c/go/+/418576 Run-TryBot: Michael Pratt <mpratt@google.com> Reviewed-by: Austin Clements <austin@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
-rw-r--r--src/runtime/panic.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/runtime/panic.go b/src/runtime/panic.go
index ab8d1f82b4..e7eee82df6 100644
--- a/src/runtime/panic.go
+++ b/src/runtime/panic.go
@@ -1240,6 +1240,8 @@ func startpanic_m() bool {
var didothers bool
var deadlock mutex
+// gp is the crashing g running on this M, but may be a user G, while getg() is
+// always g0.
func dopanic_m(gp *g, pc, sp uintptr) bool {
if gp.sig != 0 {
signame := signame(gp.sig)
@@ -1252,7 +1254,6 @@ func dopanic_m(gp *g, pc, sp uintptr) bool {
}
level, all, docrash := gotraceback()
- _g_ := getg()
if level > 0 {
if gp != gp.m.curg {
all = true
@@ -1261,7 +1262,7 @@ func dopanic_m(gp *g, pc, sp uintptr) bool {
print("\n")
goroutineheader(gp)
traceback(pc, sp, 0, gp)
- } else if level >= 2 || _g_.m.throwing >= throwTypeRuntime {
+ } else if level >= 2 || gp.m.throwing >= throwTypeRuntime {
print("\nruntime stack:\n")
traceback(pc, sp, 0, gp)
}