summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWei Huang <grubbyfans@gmail.com>2022-04-05 10:25:45 +0200
committerJosé Valim <jose.valim@dashbit.co>2022-04-06 11:01:14 +0200
commitd52f53376188c7b90e29a585902beea8c0ed1511 (patch)
treef698116ef882cd81ecaab2af85135fcb2d9acb51
parente0c8b8af8761fe0c22c73010446ba87cdea765fb (diff)
downloadelixir-d52f53376188c7b90e29a585902beea8c0ed1511.tar.gz
Make Registry.send work when value part is present (#11742)
Fix #11740.
-rw-r--r--lib/elixir/lib/registry.ex4
-rw-r--r--lib/elixir/test/elixir/registry_test.exs14
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()