diff options
Diffstat (limited to 'lib/poolparty/pool')
-rw-r--r-- | lib/poolparty/pool/supervisor.ex | 4 | ||||
-rw-r--r-- | lib/poolparty/pool/worker.ex | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/poolparty/pool/supervisor.ex b/lib/poolparty/pool/supervisor.ex index e95ceac..3132f46 100644 --- a/lib/poolparty/pool/supervisor.ex +++ b/lib/poolparty/pool/supervisor.ex @@ -1,13 +1,17 @@ defmodule PoolParty.Pool.Supervisor do use Supervisor + require Logger def start_link(pool_size, opts \\ []) do + Logger.debug("[#{__MODULE__}]: Starting Work Pool Supervisor") Supervisor.start_link(__MODULE__, {pool_size}, opts) end def init({pool_size}) do + Logger.debug("[#{__MODULE__}]: Initializing Work Pool Supervisor") children = (1..pool_size) |> Enum.map(fn (id) -> + Logger.debug("[#{__MODULE__}]: Starting child worker: #{id}") worker(PoolParty.Pool.Worker, [], id: id) end) supervise(children, strategy: :one_for_one) diff --git a/lib/poolparty/pool/worker.ex b/lib/poolparty/pool/worker.ex index c4685f5..5ae4161 100644 --- a/lib/poolparty/pool/worker.ex +++ b/lib/poolparty/pool/worker.ex @@ -1,20 +1,25 @@ defmodule PoolParty.Pool.Worker do use GenServer + require Logger def start_link(opts \\ []) do + Logger.debug("[#{__MODULE__}]: Starting worker") GenServer.start_link(__MODULE__, {}, opts) end def init(_) do + Logger.debug("[#{__MODULE__}]: Initializing Worker") PoolParty.Scheduler.join(self) {:ok, nil} end def process(pid, function, args) do + Logger.debug("[#{__MODULE__}: Casting Process request") GenServer.cast(pid, {:compute, function, args}) end def handle_cast({:compute, function, args}, _) do + Logger.debug("[#{__MODULE__}]: Process request received") PoolParty.Scheduler.ready({:result, function.(args), self}) {:noreply, nil} end |