Skip to content

Commit f0bb0e1

Browse files
author
José Valim
committed
Do not wrap process handlers in a tuple
1 parent 2cb0639 commit f0bb0e1

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

lib/elixir/lib/gen_event.ex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ defmodule GenEvent do
190190
@type manager :: pid | name | {atom, node}
191191

192192
@typedoc "Supported values for new handlers"
193-
@type handler :: module | {module, term}
193+
@type handler :: atom | {atom, term} | pid
194194

195195
@doc false
196196
defmacro __using__(_) do
@@ -756,7 +756,7 @@ defmodule GenEvent do
756756
ref = Process.monitor(pid)
757757
# Notice the pid is set only when notifications
758758
# are explicitly required.
759-
handler = handler(module: GenEvent.Stream, id: {GenEvent.Stream, pid},
759+
handler = handler(module: GenEvent.Stream, id: pid,
760760
pid: if(notify, do: pid), ref: ref)
761761
do_add_handler(GenEvent.Stream, handler, {pid, ref}, handlers, {self(), ref})
762762
end
@@ -789,7 +789,7 @@ defmodule GenEvent do
789789

790790
defp server_split_process_handlers(mode, event, [handler|t], handlers, streams) do
791791
case handler(handler, :id) do
792-
{GenEvent.Stream, _pid} ->
792+
pid when is_pid(pid) ->
793793
server_process_notify(mode, event, handler)
794794
server_split_process_handlers(mode, event, t, handlers, [handler|streams])
795795
_ ->

lib/elixir/lib/gen_event/stream.ex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ defimpl Enumerable, for: GenEvent.Stream do
9595
# The handler was removed. Stop iteration, resolve the
9696
# event later. We need to demonitor now, otherwise DOWN
9797
# appears with higher priority in the shutdown process.
98-
{:gen_event_EXIT, {GenEvent.Stream, ^self}, _reason} = event ->
98+
{:gen_event_EXIT, ^self, _reason} = event ->
9999
Process.demonitor(mon_ref, [:flush])
100100
send(self, event)
101101
{:halt, {:removed, acc}}
@@ -137,7 +137,7 @@ defimpl Enumerable, for: GenEvent.Stream do
137137
# so we trigger a request for doing so.
138138
defp stop(stream, {pid, _, _} = acc) do
139139
parent = self()
140-
_ = Task.start(fn -> GenEvent.remove_handler(pid, {GenEvent.Stream, parent}, :shutdown) end)
140+
_ = Task.start(fn -> GenEvent.remove_handler(pid, parent, :shutdown) end)
141141
stop(stream, {:removed, acc})
142142
end
143143

@@ -148,13 +148,13 @@ defimpl Enumerable, for: GenEvent.Stream do
148148
{_from, {^pid, ^ref}, {notify, _event}} when notify in [:ack_notify, :sync_notify] ->
149149
send pid, {ref, :done}
150150
wait_for_handler_removal(pid, ref, mon_ref)
151-
{:gen_event_EXIT, {GenEvent.Stream, ^self}, reason}
151+
{:gen_event_EXIT, ^self, reason}
152152
when reason == :normal
153153
when reason == :shutdown
154154
when tuple_size(reason) == 3 and elem(reason, 0) == :swapped ->
155155
Process.demonitor(mon_ref, [:flush])
156156
:ok
157-
{:gen_event_EXIT, {GenEvent.Stream, ^self}, reason} ->
157+
{:gen_event_EXIT, ^self, reason} ->
158158
Process.demonitor(mon_ref, [:flush])
159159
{:error, reason}
160160
{:DOWN, ^mon_ref, _, _, reason} ->

0 commit comments

Comments
 (0)