summaryrefslogtreecommitdiff
path: root/lib/poolparty/pool
diff options
context:
space:
mode:
Diffstat (limited to 'lib/poolparty/pool')
-rw-r--r--lib/poolparty/pool/supervisor.ex8
-rw-r--r--lib/poolparty/pool/worker.ex12
2 files changed, 10 insertions, 10 deletions
diff --git a/lib/poolparty/pool/supervisor.ex b/lib/poolparty/pool/supervisor.ex
index 3132f46..751a942 100644
--- a/lib/poolparty/pool/supervisor.ex
+++ b/lib/poolparty/pool/supervisor.ex
@@ -2,17 +2,17 @@ defmodule PoolParty.Pool.Supervisor do
use Supervisor
require Logger
- def start_link(pool_size, opts \\ []) do
+ def start_link(pool_size, event_manager, opts \\ []) do
Logger.debug("[#{__MODULE__}]: Starting Work Pool Supervisor")
- Supervisor.start_link(__MODULE__, {pool_size}, opts)
+ Supervisor.start_link(__MODULE__, {pool_size, event_manager}, opts)
end
- def init({pool_size}) do
+ def init({pool_size, event_manager}) 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)
+ worker(PoolParty.Pool.Worker, [event_manager], id: id)
end)
supervise(children, strategy: :one_for_one)
end
diff --git a/lib/poolparty/pool/worker.ex b/lib/poolparty/pool/worker.ex
index 5ae4161..2131f8e 100644
--- a/lib/poolparty/pool/worker.ex
+++ b/lib/poolparty/pool/worker.ex
@@ -2,15 +2,15 @@ defmodule PoolParty.Pool.Worker do
use GenServer
require Logger
- def start_link(opts \\ []) do
+ def start_link(event_manager, opts \\ []) do
Logger.debug("[#{__MODULE__}]: Starting worker")
- GenServer.start_link(__MODULE__, {}, opts)
+ GenServer.start_link(__MODULE__, {event_manager}, opts)
end
- def init(_) do
+ def init({event_manager}) do
Logger.debug("[#{__MODULE__}]: Initializing Worker")
PoolParty.Scheduler.join(self)
- {:ok, nil}
+ {:ok, %{events: event_manager}}
end
def process(pid, function, args) do
@@ -18,10 +18,10 @@ defmodule PoolParty.Pool.Worker do
GenServer.cast(pid, {:compute, function, args})
end
- def handle_cast({:compute, function, args}, _) do
+ def handle_cast({:compute, function, args}, state) do
Logger.debug("[#{__MODULE__}]: Process request received")
PoolParty.Scheduler.ready({:result, function.(args), self})
- {:noreply, nil}
+ {:noreply, state}
end
end