Skip to content

Commit 6e233f2

Browse files
committed
Implement all of os.Signal in arch-specific syscall
This is basically copied from `syscall_js.go` from the Go standard library, since the existing parts were from there as well.
1 parent ac7e370 commit 6e233f2

File tree

4 files changed

+66
-0
lines changed

4 files changed

+66
-0
lines changed

src/syscall/syscall_libc_darwin.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package syscall
55

66
import (
7+
"internal/itoa"
78
"unsafe"
89
)
910

@@ -82,6 +83,20 @@ const (
8283
SIGTERM Signal = 0xf
8384
)
8485

86+
func (s Signal) Signal() {}
87+
88+
func (s Signal) String() string {
89+
if 0 <= s && int(s) < len(signals) {
90+
str := signals[s]
91+
if str != "" {
92+
return str
93+
}
94+
}
95+
return "signal " + itoa.Itoa(int(s))
96+
}
97+
98+
var signals = [...]string{}
99+
85100
const (
86101
Stdin = 0
87102
Stdout = 1

src/syscall/syscall_libc_nintendoswitch.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33

44
package syscall
55

6+
import (
7+
"internal/itoa"
8+
)
9+
610
// A Signal is a number describing a process signal.
711
// It implements the os.Signal interface.
812
type Signal int
@@ -17,6 +21,20 @@ const (
1721
SIGTERM
1822
)
1923

24+
func (s Signal) Signal() {}
25+
26+
func (s Signal) String() string {
27+
if 0 <= s && int(s) < len(signals) {
28+
str := signals[s]
29+
if str != "" {
30+
return str
31+
}
32+
}
33+
return "signal " + itoa.Itoa(int(s))
34+
}
35+
36+
var signals = [...]string{}
37+
2038
// File system
2139

2240
const (

src/syscall/syscall_libc_wasi.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package syscall
55

66
import (
7+
"internal/itoa"
78
"unsafe"
89
)
910

@@ -20,6 +21,20 @@ const (
2021
SIGTERM = 15
2122
)
2223

24+
func (s Signal) Signal() {}
25+
26+
func (s Signal) String() string {
27+
if 0 <= s && int(s) < len(signals) {
28+
str := signals[s]
29+
if str != "" {
30+
return str
31+
}
32+
}
33+
return "signal " + itoa.Itoa(int(s))
34+
}
35+
36+
var signals = [...]string{}
37+
2338
const (
2439
Stdin = 0
2540
Stdout = 1

src/syscall/syscall_nonhosted.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33

44
package syscall
55

6+
import (
7+
"internal/itoa"
8+
)
9+
610
// Most code here has been copied from the Go sources:
711
// https://github.com/golang/go/blob/go1.12/src/syscall/syscall_js.go
812
// It has the following copyright note:
@@ -25,6 +29,20 @@ const (
2529
SIGTERM
2630
)
2731

32+
func (s Signal) Signal() {}
33+
34+
func (s Signal) String() string {
35+
if 0 <= s && int(s) < len(signals) {
36+
str := signals[s]
37+
if str != "" {
38+
return str
39+
}
40+
}
41+
return "signal " + itoa.Itoa(int(s))
42+
}
43+
44+
var signals = [...]string{}
45+
2846
// File system
2947

3048
const (

0 commit comments

Comments
 (0)