We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 9243508 commit 9451e69Copy full SHA for 9451e69
lib/elixir/lib/process.ex
@@ -274,7 +274,7 @@ defmodule Process do
274
already registered (check with `registered?/1`).
275
"""
276
@spec register(pid | port, atom) :: true
277
- def register(pid, name) do
+ def register(pid, name) when not name in [nil, false, true] do
278
:erlang.register(name, pid)
279
end
280
lib/elixir/lib/task/supervised.ex
@@ -69,19 +69,22 @@ defmodule Task.Supervised do
69
70
71
defp exit(info, mfa, reason) do
72
+ {fun, args} = get_running(mfa)
73
+
74
:error_logger.format(
75
"** Task ~p terminating~n" <>
76
"** Started from ~p~n" <>
- "** Running ~p~n" <>
77
+ "** When function == ~p~n" <>
78
+ "** arguments == ~p~n" <>
79
"** Reason for termination == ~n" <>
- "** ~p~n", [self, get_from(info), get_running(mfa), reason])
80
+ "** ~p~n", [self, get_from(info), fun, args, reason])
81
82
exit(reason)
83
84
85
defp get_from({node, pid_or_name}) when node == node(), do: pid_or_name
86
defp get_from(other), do: other
87
- defp get_running({:erlang, :apply, [fun, []]}), do: fun
- defp get_running(other), do: other
88
+ defp get_running({:erlang, :apply, [fun, []]}) when is_function(fun, 0), do: {fun, []}
89
+ defp get_running({mod, fun, args}), do: {:erlang.make_fun(mod, fun, length(args)), args}
90
0 commit comments