blob: c4685f5bc619ef6207cf6320300b61e11a590e78 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
defmodule PoolParty.Pool.Worker do
use GenServer
def start_link(opts \\ []) do
GenServer.start_link(__MODULE__, {}, opts)
end
def init(_) do
PoolParty.Scheduler.join(self)
{:ok, nil}
end
def process(pid, function, args) do
GenServer.cast(pid, {:compute, function, args})
end
def handle_cast({:compute, function, args}, _) do
PoolParty.Scheduler.ready({:result, function.(args), self})
{:noreply, nil}
end
end
|