...
Source file src/os/signal/signal_unix.go
1
2
3
4
5
6
7 package signal
8
9 import (
10 "os"
11 "syscall"
12 )
13
14
15 func signal_disable(uint32)
16 func signal_enable(uint32)
17 func signal_ignore(uint32)
18 func signal_ignored(uint32) bool
19 func signal_recv() uint32
20
21 func loop() {
22 for {
23 process(syscall.Signal(signal_recv()))
24 }
25 }
26
27 func init() {
28 signal_enable(0)
29 go loop()
30 }
31
32 const (
33 numSig = 65
34 )
35
36 func signum(sig os.Signal) int {
37 switch sig := sig.(type) {
38 case syscall.Signal:
39 i := int(sig)
40 if i < 0 || i >= numSig {
41 return -1
42 }
43 return i
44 default:
45 return -1
46 }
47 }
48
49 func enableSignal(sig int) {
50 signal_enable(uint32(sig))
51 }
52
53 func disableSignal(sig int) {
54 signal_disable(uint32(sig))
55 }
56
57 func ignoreSignal(sig int) {
58 signal_ignore(uint32(sig))
59 }
60
61 func signalIgnored(sig int) bool {
62 return signal_ignored(uint32(sig))
63 }
64
View as plain text