mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.cc] runtime: convert signal handlers from C to Go
This code overused macros and could not be converted automatically. Instead a new sigctxt type had to be defined for each os/arch combination, with a common (implicit) interface used by the arch-specific signal handler code. [This CL is part of the removal of C code from package runtime. See golang.org/s/dev.cc for an overview.] LGTM=r R=r CC=austin, dvyukov, golang-codereviews, iant, khr https://golang.org/cl/168500044
This commit is contained in:
parent
9f99d531a0
commit
2d917c0c26
27 changed files with 882 additions and 829 deletions
|
|
@ -45,7 +45,7 @@ const (
|
|||
|
||||
// Called from sighandler to send a signal back out of the signal handling thread.
|
||||
// Reports whether the signal was sent. If not, the caller typically crashes the program.
|
||||
func sigsend(s int32) bool {
|
||||
func sigsend(s uint32) bool {
|
||||
bit := uint32(1) << uint(s&31)
|
||||
if !sig.inuse || s < 0 || int(s) >= 32*len(sig.wanted) || sig.wanted[s/32]&bit == 0 {
|
||||
return false
|
||||
|
|
@ -157,9 +157,6 @@ func badsignal(sig uintptr) {
|
|||
cgocallback(unsafe.Pointer(funcPC(sigsend)), noescape(unsafe.Pointer(&sig)), unsafe.Sizeof(sig))
|
||||
}
|
||||
|
||||
func sigenable_m()
|
||||
func sigdisable_m()
|
||||
|
||||
func sigenable_go(s uint32) {
|
||||
g := getg()
|
||||
g.m.scalararg[0] = uintptr(s)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue