diff --git a/lib/eternal/supervisor.ex b/lib/eternal/supervisor.ex index 3d8d8ba..7cb82a1 100644 --- a/lib/eternal/supervisor.ex +++ b/lib/eternal/supervisor.ex @@ -66,7 +66,7 @@ defmodule Eternal.Supervisor do # table twice. Otherwise, we execute the callback which will create the table. defp detect_clash(name, ets_opts, fun) do if exists?(name, ets_opts) do - { :ok, Process.whereis(name), name } + { :error, { :already_started, Process.whereis(name) } } else fun.() end diff --git a/test/eternal_test.exs b/test/eternal_test.exs index cab4a56..bbdfcb3 100644 --- a/test/eternal_test.exs +++ b/test/eternal_test.exs @@ -72,10 +72,9 @@ defmodule EternalTest do end test "starting a table twice finds the previous owner" do - { :ok, pid1 } = Eternal.start_link(:existing_table, [], [ quiet: true ]) - { :ok, pid2 } = Eternal.start_link(:existing_table, [], [ quiet: true ]) - - assert(pid1 == pid2) + { :ok, pid } = Eternal.start_link(:existing_table, [], [ quiet: true ]) + result2 = Eternal.start_link(:existing_table, [], [ quiet: true ]) + assert(result2 == { :error, { :already_started, pid } }) end test "deprecation warnings when using new/3" do