import "unsafe"
+// May run during STW, so write barriers are not allowed.
+//go:nowritebarrier
func sighandler(_ureg *ureg, note *byte, gp *g) int {
_g_ := getg()
var t sigTabT
}
Throw:
_g_.m.throwing = 1
- _g_.m.caughtsig = gp
+ setGNoWriteBarrier(&_g_.m.caughtsig, gp)
startpanic()
print(notestr, "\n")
print("PC=", hex(c.pc()), "\n")
print("gs ", hex(c.gs()), "\n")
}
+// May run during STW, so write barriers are not allowed.
+//go:nowritebarrier
func sighandler(sig uint32, info *siginfo, ctxt unsafe.Pointer, gp *g) {
_g_ := getg()
c := &sigctxt{info, ctxt}
}
_g_.m.throwing = 1
- _g_.m.caughtsig = gp
+ setGNoWriteBarrier(&_g_.m.caughtsig, gp)
startpanic()
if sig < uint32(len(sigtable)) {
var crashing int32
+// May run during STW, so write barriers are not allowed.
+//go:nowritebarrier
func sighandler(sig uint32, info *siginfo, ctxt unsafe.Pointer, gp *g) {
_g_ := getg()
c := &sigctxt{info, ctxt}
}
_g_.m.throwing = 1
- _g_.m.caughtsig = gp
+ setGNoWriteBarrier(&_g_.m.caughtsig, gp)
if crashing == 0 {
startpanic()
print("fault ", hex(c.fault()), "\n")
}
+// May run during STW, so write barriers are not allowed.
+//go:nowritebarrier
func sighandler(sig uint32, info *siginfo, ctxt unsafe.Pointer, gp *g) {
_g_ := getg()
c := &sigctxt{info, ctxt}
}
_g_.m.throwing = 1
- _g_.m.caughtsig = gp
+ setGNoWriteBarrier(&_g_.m.caughtsig, gp)
startpanic()
if sig < uint32(len(sigtable)) {
print("fault ", hex(c.fault()), "\n")
}
+// May run during STW, so write barriers are not allowed.
+//go:nowritebarrier
func sighandler(sig uint32, info *siginfo, ctxt unsafe.Pointer, gp *g) {
_g_ := getg()
c := &sigctxt{info, ctxt}
}
_g_.m.throwing = 1
- _g_.m.caughtsig = gp
+ setGNoWriteBarrier(&_g_.m.caughtsig, gp)
startpanic()
if sig < uint32(len(sigtable)) {
print("trap ", hex(c.trap()), "\n")
}
+// May run during STW, so write barriers are not allowed.
+//go:nowritebarrier
func sighandler(sig uint32, info *siginfo, ctxt unsafe.Pointer, gp *g) {
_g_ := getg()
c := &sigctxt{info, ctxt}
}
_g_.m.throwing = 1
- _g_.m.caughtsig = gp
+ setGNoWriteBarrier(&_g_.m.caughtsig, gp)
startpanic()
if sig < uint32(len(sigtable)) {