aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/panic.go
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2015-01-30 15:30:41 -0500
committerAustin Clements <austin@google.com>2015-02-02 19:34:51 +0000
commit28b51184156e1261bb92e7ec4050a794dd606fa6 (patch)
tree8d8659e3e706f687b241e8068ef80ff80987c3d2 /src/runtime/panic.go
parentf95becaddb539a45cc9bedbbbc9ee4a2433c1ab5 (diff)
downloadgo-28b51184156e1261bb92e7ec4050a794dd606fa6.tar.xz
runtime: rename m.gcing to m.preemptoff and make it a string
m.gcing has become overloaded to mean "don't preempt this g" in general. Once the garbage collector is preemptible, the one thing it *won't* mean is that we're in the garbage collector. So, rename gcing to "preemptoff" and make it a string giving a reason that preemption is disabled. gcing was never set to anything but 0 or 1, so we don't have to worry about there being a stack of reasons. Change-Id: I4337c29e8e942e7aa4f106fc29597e1b5de4ef46 Reviewed-on: https://go-review.googlesource.com/3660 Reviewed-by: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/runtime/panic.go')
-rw-r--r--src/runtime/panic.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/runtime/panic.go b/src/runtime/panic.go
index 09278afbed..e2a5c629da 100644
--- a/src/runtime/panic.go
+++ b/src/runtime/panic.go
@@ -353,11 +353,14 @@ func gopanic(e interface{}) {
print("\n")
throw("panic during malloc")
}
- if gp.m.gcing != 0 {
+ if gp.m.preemptoff != "" {
print("panic: ")
printany(e)
print("\n")
- throw("panic during gc")
+ print("preempt off reason: ")
+ print(gp.m.preemptoff)
+ print("\n")
+ throw("panic during preemptoff")
}
if gp.m.locks != 0 {
print("panic: ")