cover/Elixir.Elita.Enlist.html

1 defmodule Elita.Enlist do
2 import Utils.Normalize, only: [name: 1]
3
4 def handle(key, opts, name, configs) do
5 :global.register_name(key, self())
6 58 |> proceed(opts, name, configs)
7 end
8
9 defp proceed(:yes, opts, name, configs) do
10 58 {:ok, opts, name, configs}
11 end
12
13
:-(
defp proceed(:no, _opts, _name, _configs) do
14 {:stop, :duplicate}
15 end
16
17 def cleanup(state) do
18 37 key = {name(state.name), :puppet}
19 37 :global.whereis_name(key) |> sweep(key)
20 37 forget(state.name)
21 end
22
23 def release(state) do
24
:-(
key = {name(state.name), :puppet}
25
:-(
:global.whereis_name(key) |> sweep(key)
26 end
27
28 37 defp sweep(pid, key) when pid == self(), do: :global.unregister_name(key)
29
:-(
defp sweep(_pid, _key), do: :ok
30
31 defp forget(name) do
32 37 :ets.delete(:elita_vault, name)
33 end
34 end
Line Hits Source