aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/signal_arm64.go
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2015-11-17 17:20:38 -0500
committerAustin Clements <austin@google.com>2015-11-24 19:36:55 +0000
commite126f30a662ea6bd622d69c9fd85499b612fb6b3 (patch)
treebed46f2b1b9e60e3ee07619f33eaea485ebdeac5 /src/runtime/signal_arm64.go
parentb790ad5ac0c9f2cc20ded07162e539702b1b029f (diff)
downloadgo-e126f30a662ea6bd622d69c9fd85499b612fb6b3.tar.gz
go-e126f30a662ea6bd622d69c9fd85499b612fb6b3.zip
runtime: recursively disallow write barriers in sighandler
sighandler may run during STW, so write barriers are not allowed. Change-Id: Icdf46be10ea296fd87e73ab56ebb718c5d3c97ac Reviewed-on: https://go-review.googlesource.com/17007 Reviewed-by: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/runtime/signal_arm64.go')
-rw-r--r--src/runtime/signal_arm64.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/runtime/signal_arm64.go b/src/runtime/signal_arm64.go
index 96a4cb3dac..2966ec0b20 100644
--- a/src/runtime/signal_arm64.go
+++ b/src/runtime/signal_arm64.go
@@ -51,7 +51,8 @@ func dumpregs(c *sigctxt) {
var crashing int32
// May run during STW, so write barriers are not allowed.
-//go:nowritebarrier
+//
+//go:nowritebarrierrec
func sighandler(sig uint32, info *siginfo, ctxt unsafe.Pointer, gp *g) {
_g_ := getg()
c := &sigctxt{info, ctxt}