Skip to content

Commit f0185ee

Browse files
Refactor simplify Process::Status#exit_reason on Unix (#15288)
1 parent 7e48069 commit f0185ee

File tree

1 file changed

+21
-28
lines changed

1 file changed

+21
-28
lines changed

src/process/status.cr

+21-28
Original file line numberDiff line numberDiff line change
@@ -142,37 +142,30 @@ class Process::Status
142142
@exit_status & 0xC0000000_u32 == 0 ? ExitReason::Normal : ExitReason::Unknown
143143
end
144144
{% elsif flag?(:unix) && !flag?(:wasm32) %}
145-
# define __WIFEXITED(status) (__WTERMSIG(status) == 0)
146-
if signal_code == 0
145+
case exit_signal?
146+
when Nil
147147
ExitReason::Normal
148-
elsif signal_exit?
149-
case Signal.from_value?(signal_code)
150-
when Nil
151-
ExitReason::Signal
152-
when .abrt?, .kill?, .quit?
153-
ExitReason::Aborted
154-
when .hup?
155-
ExitReason::TerminalDisconnected
156-
when .term?
157-
ExitReason::SessionEnded
158-
when .int?
159-
ExitReason::Interrupted
160-
when .trap?
161-
ExitReason::Breakpoint
162-
when .segv?
163-
ExitReason::AccessViolation
164-
when .bus?
165-
ExitReason::BadMemoryAccess
166-
when .ill?
167-
ExitReason::BadInstruction
168-
when .fpe?
169-
ExitReason::FloatException
170-
else
171-
ExitReason::Signal
172-
end
148+
when .abrt?, .kill?, .quit?
149+
ExitReason::Aborted
150+
when .hup?
151+
ExitReason::TerminalDisconnected
152+
when .term?
153+
ExitReason::SessionEnded
154+
when .int?
155+
ExitReason::Interrupted
156+
when .trap?
157+
ExitReason::Breakpoint
158+
when .segv?
159+
ExitReason::AccessViolation
160+
when .bus?
161+
ExitReason::BadMemoryAccess
162+
when .ill?
163+
ExitReason::BadInstruction
164+
when .fpe?
165+
ExitReason::FloatException
173166
else
174167
# TODO: stop / continue
175-
ExitReason::Unknown
168+
ExitReason::Signal
176169
end
177170
{% else %}
178171
raise NotImplementedError.new("Process::Status#exit_reason")

0 commit comments

Comments
 (0)