diff options
author | Wei Huang <grubbyfans@gmail.com> | 2022-04-05 10:25:45 +0200 |
---|---|---|
committer | José Valim <jose.valim@dashbit.co> | 2022-04-06 11:01:14 +0200 |
commit | d52f53376188c7b90e29a585902beea8c0ed1511 (patch) | |
tree | f698116ef882cd81ecaab2af85135fcb2d9acb51 | |
parent | e0c8b8af8761fe0c22c73010446ba87cdea765fb (diff) | |
download | elixir-d52f53376188c7b90e29a585902beea8c0ed1511.tar.gz |
Make Registry.send work when value part is present (#11742)
Fix #11740.
-rw-r--r-- | lib/elixir/lib/registry.ex | 4 | ||||
-rw-r--r-- | lib/elixir/test/elixir/registry_test.exs | 14 |
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/elixir/lib/registry.ex b/lib/elixir/lib/registry.ex index 56dd36b8e..2275958c8 100644 --- a/lib/elixir/lib/registry.ex +++ b/lib/elixir/lib/registry.ex @@ -260,6 +260,10 @@ defmodule Registry do end end + def send({registry, key, _value}, msg) do + Registry.send({registry, key}, msg) + end + @doc false def unregister_name({registry, key}), do: unregister(registry, key) def unregister_name({registry, key, _value}), do: unregister(registry, key) diff --git a/lib/elixir/test/elixir/registry_test.exs b/lib/elixir/test/elixir/registry_test.exs index 30c06a5ab..db45f0cbd 100644 --- a/lib/elixir/test/elixir/registry_test.exs +++ b/lib/elixir/test/elixir/registry_test.exs @@ -896,6 +896,20 @@ defmodule RegistryTest do assert {%RuntimeError{message: "some error"}, _stacktrace} = error end + test "send works", %{registry: registry} do + name = {registry, "self"} + Registry.register_name(name, self()) + GenServer.cast({:via, Registry, name}, :message) + assert_received {:"$gen_cast", :message} + end + + test "send works with value", %{registry: registry} do + name = {registry, "self", "value"} + Registry.register_name(name, self()) + GenServer.cast({:via, Registry, name}, :message) + assert_received {:"$gen_cast", :message} + end + defp register_task(registry, key, value) do parent = self() |