diff options
Diffstat (limited to 'src/runtime/os1_freebsd.go')
-rw-r--r-- | src/runtime/os1_freebsd.go | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/runtime/os1_freebsd.go b/src/runtime/os1_freebsd.go index f3519f3490..b18e60f9b6 100644 --- a/src/runtime/os1_freebsd.go +++ b/src/runtime/os1_freebsd.go @@ -118,6 +118,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) { @@ -126,6 +127,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() { @@ -151,10 +163,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) } @@ -224,6 +234,7 @@ func getsig(i int32) uintptr { return sa.sa_handler } +//go:nosplit func signalstack(s *stack) { var st stackt if s == nil { |