Skip to content

Commit bcf789f

Browse files
committed
Do not share refs across receives
1 parent a33693e commit bcf789f

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

lib/elixir/lib/task.ex

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1399,13 +1399,11 @@ defmodule Task do
13991399
#
14001400
# ERL_COMPILER_OPTIONS=recv_opt_info elixir lib/elixir/lib/task.ex
14011401
#
1402-
def __recv_opt_info__(pid) do
1403-
ref = build_alias(pid)
1404-
task = %Task{mfa: {__MODULE__, :__recv_opt_info__, 0}, owner: self(), pid: pid, ref: ref}
1405-
await_receive(ref, task, :infinity)
1406-
shutdown_receive(ref, build_monitor(pid), task, :shutdown, :infinity)
1407-
yield_receive(ref, task, :infinity)
1408-
ignore_receive(ref, pid, task)
1402+
def __recv_opt_info__(pid, task) do
1403+
await_receive(build_alias(pid), task, :infinity)
1404+
shutdown_receive(build_alias(pid), build_monitor(pid), task, :shutdown, :infinity)
1405+
yield_receive(build_alias(pid), task, :infinity)
1406+
ignore_receive(build_alias(pid), pid, task)
14091407
end
14101408

14111409
## Helpers

0 commit comments

Comments
 (0)