From 25703ec9109197d67fb72f246a11239d00389ead Mon Sep 17 00:00:00 2001 From: Wei Huang Date: Tue, 5 Apr 2022 09:37:52 +0200 Subject: [PATCH 1/3] Make Registry.send work when value part is present Fix #11740. --- lib/elixir/lib/registry.ex | 5 +++++ lib/elixir/test/elixir/registry_test.exs | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/lib/elixir/lib/registry.ex b/lib/elixir/lib/registry.ex index eaa87deee89..4a0b38c0749 100644 --- a/lib/elixir/lib/registry.ex +++ b/lib/elixir/lib/registry.ex @@ -260,6 +260,11 @@ defmodule Registry do end end + @doc false + 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 b85390655d0..20ec5c5c94d 100644 --- a/lib/elixir/test/elixir/registry_test.exs +++ b/lib/elixir/test/elixir/registry_test.exs @@ -992,6 +992,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()) + Registry.send(name, :message) + assert_received :message + end + + test "send works with value", %{registry: registry} do + name = {registry, "self", "value"} + Registry.register_name(name, self()) + Registry.send(name, :message) + assert_received :message + end + defp register_task(registry, key, value) do parent = self() From 65ead2d8c29a7b64eaef339ec19caa6bab923f7d Mon Sep 17 00:00:00 2001 From: Wei Huang Date: Tue, 5 Apr 2022 10:00:50 +0200 Subject: [PATCH 2/3] Use GenServer.cast for testing --- lib/elixir/test/elixir/registry_test.exs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/elixir/test/elixir/registry_test.exs b/lib/elixir/test/elixir/registry_test.exs index 20ec5c5c94d..68d099467dd 100644 --- a/lib/elixir/test/elixir/registry_test.exs +++ b/lib/elixir/test/elixir/registry_test.exs @@ -995,15 +995,15 @@ defmodule RegistryTest do test "send works", %{registry: registry} do name = {registry, "self"} Registry.register_name(name, self()) - Registry.send(name, :message) - assert_received :message + 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()) - Registry.send(name, :message) - assert_received :message + GenServer.cast({:via, Registry, name}, :message) + assert_received {:"$gen_cast", :message} end defp register_task(registry, key, value) do From da4bf5b006d62a96913561614500782f4011552e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 5 Apr 2022 10:23:08 +0200 Subject: [PATCH 3/3] Update lib/elixir/lib/registry.ex --- lib/elixir/lib/registry.ex | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/elixir/lib/registry.ex b/lib/elixir/lib/registry.ex index 4a0b38c0749..4e6999a7d2c 100644 --- a/lib/elixir/lib/registry.ex +++ b/lib/elixir/lib/registry.ex @@ -260,7 +260,6 @@ defmodule Registry do end end - @doc false def send({registry, key, _value}, msg) do Registry.send({registry, key}, msg) end