diff options
-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() |