summaryrefslogtreecommitdiff
path: root/libgo/go/runtime/sigqueue.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/runtime/sigqueue.go')
-rw-r--r--libgo/go/runtime/sigqueue.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/libgo/go/runtime/sigqueue.go b/libgo/go/runtime/sigqueue.go
index b108c39cc85..cf926a95689 100644
--- a/libgo/go/runtime/sigqueue.go
+++ b/libgo/go/runtime/sigqueue.go
@@ -237,7 +237,18 @@ func signal_ignore(s uint32) {
atomic.Store(&sig.ignored[s/32], i)
}
+// sigInitIgnored marks the signal as already ignored. This is called at
+// program start by initsig. In a shared library initsig is called by
+// libpreinit, so the runtime may not be initialized yet.
+//go:nosplit
+func sigInitIgnored(s uint32) {
+ i := sig.ignored[s/32]
+ i |= 1 << (s & 31)
+ atomic.Store(&sig.ignored[s/32], i)
+}
+
// Checked by signal handlers.
+//go:linkname signal_ignored os_signal.signal_ignored
func signal_ignored(s uint32) bool {
i := atomic.Load(&sig.ignored[s/32])
return i&(1<<(s&31)) != 0