Bläddra i källkod

Don't use GenReset internally

Tim Buchwaldt 7 år sedan
förälder
incheckning
1233d7d7fd
2 ändrade filer med 41 tillägg och 37 borttagningar
  1. 22 18
      lib/gen_reset/gen_reset_tracker.ex
  2. 19 19
      test/gen_reset_tracker_test.exs

+ 22 - 18
lib/gen_reset/gen_reset_tracker.ex

@@ -1,44 +1,48 @@
 defmodule GenReset.Tracker do
-	use GenServer
-	use GenReset
+  use GenServer
 
-	@initial_state []
+  @initial_state []
 
-	def start_link(_args) do
-		GenServer.start_link(__MODULE__, nil, name: __MODULE__)
-	end
+  def start_link(_args) do
+    GenServer.start_link(__MODULE__, nil, name: __MODULE__)
+  end
 
-	def init(_args) do
-    register_gen_reset(@initial_state)
+  def init(_args) do
     {:ok, @initial_state}
   end
 
   def add(pid) do
-  	GenServer.call(__MODULE__, {:add, pid})
+    GenServer.call(__MODULE__, {:add, pid})
   end
 
   def remove(pid) do
-  	GenServer.call(__MODULE__, {:remove, pid})
+    GenServer.call(__MODULE__, {:remove, pid})
   end
 
   def pids do
-  	GenServer.call(__MODULE__, :pids)
+    GenServer.call(__MODULE__, :pids)
+  end
+
+  def reset do
+    GenServer.call(__MODULE__, :reset)
   end
 
   def handle_call({:add, pid}, _from, state) do
-  	Process.monitor(pid)
-  	{:reply, :ok, state ++ [pid]}
+    Process.monitor(pid)
+    {:reply, :ok, state ++ [pid]}
   end
 
   def handle_call({:remove, pid}, _from, state) do
-		{:reply, :ok, state -- [pid]}
+    {:reply, :ok, state -- [pid]}
   end
 
+
+  def handle_call(:pids, _from, state), do: {:reply, state, state}
+
+  def handle_call(:reset, _from, _state), do: {:reply, :ok, []}
+
   def handle_info({:DOWN, _ref, :process, object, _reason}, state) do
-  	IO.puts "Received down message"
-  	IO.inspect(object)
-		{:noreply, state -- [object]}
+    {:noreply, state -- [object]}
   end
 
-  def handle_call(:pids, _from, state), do: {:reply, state, state}
 end

+ 19 - 19
test/gen_reset_tracker_test.exs

@@ -2,35 +2,35 @@ defmodule GenReset.TrackerTest do
   use ExUnit.Case
 
   setup do
-  	send(GenReset.Tracker, :"$gen_reset")
-  	:ok
+    GenServer.call(GenReset.Tracker, :reset)
+    :ok
   end
 
   test "adding pids" do
-		assert GenReset.Tracker.add(self()) == :ok
-		assert GenReset.Tracker.pids == [self()]
+    assert GenReset.Tracker.add(self()) == :ok
+    assert GenReset.Tracker.pids == [self()]
   end
 
   test "removing existing pid" do
-  	assert GenReset.Tracker.add(self()) == :ok
-		assert GenReset.Tracker.pids == [self()]
-  	assert GenReset.Tracker.remove(self()) == :ok
-		assert GenReset.Tracker.pids == []
+    assert GenReset.Tracker.add(self()) == :ok
+    assert GenReset.Tracker.pids == [self()]
+    assert GenReset.Tracker.remove(self()) == :ok
+    assert GenReset.Tracker.pids == []
 
   end
 
   test "dead pid is automatically removed" do
-  	pid = Process.spawn(fn ->
-  		receive do
-  			_ -> :ok
-  		end
-  	 end, [])
-  	GenReset.Tracker.add(pid)
-  	assert GenReset.Tracker.pids == [pid]
-  	Process.exit(pid, :kill)
-  	TimeHelper.wait_until(fn ->
-	  	assert GenReset.Tracker.pids == []
-	  end)
+    pid = Process.spawn(fn ->
+      receive do
+        _ -> :ok
+      end
+     end, [])
+    GenReset.Tracker.add(pid)
+    assert GenReset.Tracker.pids == [pid]
+    Process.exit(pid, :kill)
+    TimeHelper.wait_until(fn ->
+      assert GenReset.Tracker.pids == []
+    end)
    end
 end