diff options
Diffstat (limited to 'src/runtime/os1_netbsd.go')
-rw-r--r-- | src/runtime/os1_netbsd.go | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/runtime/os1_netbsd.go b/src/runtime/os1_netbsd.go index cacd60620b..f4c5ca48eb 100644 --- a/src/runtime/os1_netbsd.go +++ b/src/runtime/os1_netbsd.go @@ -138,6 +138,7 @@ func mpreinit(mp *m) { mp.gsignal.m = mp } +//go:nosplit func msigsave(mp *m) { smask := (*sigset)(unsafe.Pointer(&mp.sigmask)) if unsafe.Sizeof(*smask) > unsafe.Sizeof(mp.sigmask) { @@ -146,6 +147,17 @@ func msigsave(mp *m) { sigprocmask(_SIG_SETMASK, nil, smask) } +//go:nosplit +func msigrestore(mp *m) { + smask := (*sigset)(unsafe.Pointer(&mp.sigmask)) + sigprocmask(_SIG_SETMASK, smask, nil) +} + +//go:nosplit +func sigblock() { + sigprocmask(_SIG_SETMASK, &sigset_all, nil) +} + // Called to initialize a new m (including the bootstrap m). // Called on the new thread, can not allocate memory. func minit() { @@ -166,11 +178,8 @@ func minit() { } // Called from dropm to undo the effect of an minit. +//go:nosplit func unminit() { - _g_ := getg() - smask := (*sigset)(unsafe.Pointer(&_g_.m.sigmask)) - sigprocmask(_SIG_SETMASK, smask, nil) - signalstack(nil) } @@ -213,6 +222,7 @@ func getsig(i int32) uintptr { return sa.sa_sigaction } +//go:nosplit func signalstack(s *stack) { var st sigaltstackt if s == nil { |