summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/poolparty/scheduler.ex10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/poolparty/scheduler.ex b/lib/poolparty/scheduler.ex
index dc4d731..988ee50 100644
--- a/lib/poolparty/scheduler.ex
+++ b/lib/poolparty/scheduler.ex
@@ -68,7 +68,15 @@ defmodule PoolParty.Scheduler do
def handle_cast({:leave, pid}, state) do
Logger.debug("[#{__MODULE__}]: Worker left pool")
GenEvent.notify(state.events, {:worker_leaving, pid})
- {:noreply, %{state| workers: state.workers -- [pid]}}
+ processing = case HashDict.pop(state.processing, pid) do
+ {nil, processing} ->
+ processing
+ {client, processing} ->
+ send(client, {:result, :failed})
+ processing
+ end
+ {:noreply, %{state| workers: state.workers -- [pid],
+ processing: processing}}
end
def handle_cast({:ready, result, pid}, state) do