Skip to content

Use :erlang.exit_signal/2 in Process.exit/2 - #16027

Merged
josevalim merged 7 commits into
mainfrom
jv-exit-signal
Oct 27, 2026
Merged

josevalim merged 7 commits into
mainfrom
jv-exit-signal

Conversation

@josevalim

@josevalim josevalim commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

:erlang.exit/2 is deprecated on Erlang/OTP master, which breaks the OTP master CI job with --warnings-as-errors (Process.exit/2 is inlined to it).

:erlang.exit_signal/2 has existed since Erlang/OTP 21 (documented since 29) and shares the same implementation, except when the calling process signals itself: Process.exit(self(), :normal) no longer terminates the caller and other reasons are delivered asynchronously. exit/1 should be used to terminate the calling process instead.

  • Kernel.CLI waits for the exit signal it sends itself on --rpc-eval failures, preserving the previous behaviour
  • Updated docs and the tests relying on the old self-signal behaviour

Assisted-by: Claude Code:claude-opus-5-5

:erlang.exit/2 is deprecated in upcoming Erlang/OTP versions.
exit_signal/2 has been available since Erlang/OTP 21 and differs
only when the calling process signals itself: :normal no longer
terminates it and other reasons are delivered asynchronously.

Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
@josevalim
josevalim merged commit 9391962 into main Oct 27, 2026
26 checks passed
@josevalim
josevalim deleted the jv-exit-signal branch October 27, 2026 16:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant