@@ -26,8 +26,11 @@ import Dispatch
26
26
/// Signals are standardized messages sent to a running program to trigger specific behavior, such as quitting or error handling
27
27
public struct UnixSignal : Hashable , Sendable , CustomStringConvertible {
28
28
internal enum Wrapped {
29
+ case sigabrt
29
30
case sighup
31
+ case sigill
30
32
case sigint
33
+ case sigsegv
31
34
case sigterm
32
35
case sigusr1
33
36
case sigusr2
@@ -49,12 +52,18 @@ public struct UnixSignal: Hashable, Sendable, CustomStringConvertible {
49
52
return String ( describing: self . wrapped)
50
53
}
51
54
55
+ /// Usually generated by the abort() function. Useful for cleanup prior to termination.
56
+ public static let sigabrt = Self ( . sigabrt)
52
57
/// Hang up detected on controlling terminal or death of controlling process.
53
58
public static let sighup = Self ( . sighup)
59
+ /// Issued if the user attempts to execute an illegal, malformed, or privileged instruction.
60
+ public static let sigill = Self ( . sigill)
54
61
/// Issued if the user sends an interrupt signal.
55
62
public static let sigint = Self ( . sigint)
56
63
/// Issued if the user sends a quit signal.
57
64
public static let sigquit = Self ( . sigquit)
65
+ /// Issued if the user makes an invalid memory reference, such as dereferencing a null or invalid pointer.
66
+ public static let sigsegv = Self ( . sigsegv)
58
67
/// Software termination signal.
59
68
public static let sigterm = Self ( . sigterm)
60
69
public static let sigusr1 = Self ( . sigusr1)
@@ -70,12 +79,18 @@ extension UnixSignal.Wrapped: Sendable {}
70
79
extension UnixSignal . Wrapped : CustomStringConvertible {
71
80
var description : String {
72
81
switch self {
82
+ case . sigabrt:
83
+ return " SIGABRT "
73
84
case . sighup:
74
85
return " SIGHUP "
86
+ case . sigill:
87
+ return " SIGILL "
75
88
case . sigint:
76
89
return " SIGINT "
77
90
case . sigquit:
78
91
return " SIGQUIT "
92
+ case . sigsegv:
93
+ return " SIGSEGV "
79
94
case . sigterm:
80
95
return " SIGTERM "
81
96
case . sigusr1:
@@ -93,12 +108,18 @@ extension UnixSignal.Wrapped: CustomStringConvertible {
93
108
extension UnixSignal . Wrapped {
94
109
var rawValue : Int32 {
95
110
switch self {
111
+ case . sigabrt:
112
+ return SIGABRT
96
113
case . sighup:
97
114
return SIGHUP
115
+ case . sigill:
116
+ return SIGILL
98
117
case . sigint:
99
118
return SIGINT
100
119
case . sigquit:
101
120
return SIGQUIT
121
+ case . sigsegv:
122
+ return SIGSEGV
102
123
case . sigterm:
103
124
return SIGTERM
104
125
case . sigusr1:
0 commit comments