aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/panic.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/panic.go')
-rw-r--r--src/runtime/panic.go2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/runtime/panic.go b/src/runtime/panic.go
index 5b62e019d9..d70d567912 100644
--- a/src/runtime/panic.go
+++ b/src/runtime/panic.go
@@ -1081,6 +1081,7 @@ func throw(s string) {
func fatal(s string) {
// Everything fatal does should be recursively nosplit so it
// can be called even when it's unsafe to grow the stack.
+ printlock() // Prevent multiple interleaved fatal reports. See issue 69447.
systemstack(func() {
print("fatal error: ")
printindented(s) // logically printpanicval(s), but avoids convTstring write barrier
@@ -1088,6 +1089,7 @@ func fatal(s string) {
})
fatalthrow(throwTypeUser)
+ printunlock()
}
// runningPanicDefers is non-zero while running deferred functions for panic.