1
0
mirror of https://github.com/golang/go synced 2024-09-30 04:24:29 -06:00

runtime: implement setsigstack for Solaris

Change-Id: I0280d478b7d0a59d8e2082aa87fab6d7d9f36a18
Reviewed-on: https://go-review.googlesource.com/18158
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
This commit is contained in:
Ian Lance Taylor 2016-01-02 19:39:37 -08:00
parent e2093cdeef
commit 956535f5cb

View File

@ -280,7 +280,14 @@ func setsig(i int32, fn uintptr, restart bool) {
} }
func setsigstack(i int32) { func setsigstack(i int32) {
throw("setsigstack") var sa sigactiont
sigaction(i, nil, &sa)
handler := *((*uintptr)(unsafe.Pointer(&sa._funcptr)))
if handler == 0 || handler == _SIG_DFL || handler == _SIG_IGN || sa.sa_flags&_SA_ONSTACK != 0 {
return
}
sa.sa_flags |= _SA_ONSTACK
sigaction(i, &sa, nil)
} }
func getsig(i int32) uintptr { func getsig(i int32) uintptr {