summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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()