diff options
Diffstat (limited to 'src/runtime/os1_linux.go')
| -rw-r--r-- | src/runtime/os1_linux.go | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/runtime/os1_linux.go b/src/runtime/os1_linux.go index 8b5cdd3465..5977b8437f 100644 --- a/src/runtime/os1_linux.go +++ b/src/runtime/os1_linux.go @@ -198,10 +198,7 @@ func mpreinit(mp *m) { } func msigsave(mp *m) { - smask := (*sigset)(unsafe.Pointer(&mp.sigmask)) - if unsafe.Sizeof(*smask) > unsafe.Sizeof(mp.sigmask) { - throw("insufficient storage for signal mask") - } + smask := &mp.sigmask rtsigprocmask(_SIG_SETMASK, nil, smask, int32(unsafe.Sizeof(*smask))) } @@ -218,7 +215,7 @@ func minit() { _g_.m.procid = uint64(gettid()) // restore signal mask from m.sigmask and unblock essential signals - nmask := *(*sigset)(unsafe.Pointer(&_g_.m.sigmask)) + nmask := _g_.m.sigmask for i := range sigtable { if sigtable[i].flags&_SigUnblock != 0 { sigdelset(&nmask, i) @@ -230,7 +227,7 @@ func minit() { // Called from dropm to undo the effect of an minit. func unminit() { _g_ := getg() - smask := (*sigset)(unsafe.Pointer(&_g_.m.sigmask)) + smask := &_g_.m.sigmask rtsigprocmask(_SIG_SETMASK, smask, nil, int32(unsafe.Sizeof(*smask))) signalstack(nil) } |
