mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
os/signal: add func Ignored(sig Signal) bool
Ignored reports whether sig is currently ignored. This implementation only works applies on Unix systems for now. However, at the moment that is also the case for Ignore() and several other signal interaction methods, so that seems fair. Fixes #22497 Change-Id: I7c1b1a5e12373ca5da44709500ff5acedc6f1316 Reviewed-on: https://go-review.googlesource.com/108376 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
37dd7cd040
commit
dfb1b69665
7 changed files with 94 additions and 0 deletions
|
|
@ -237,7 +237,16 @@ 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 siginit.
|
||||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue