lib/markov/part_timeout.ex
defmodule Markov.PartTimeout do
@moduledoc """
Asks the model server to unload a partition after some time of inactivity
"""
defp loop(parent, timeout, num) do
receive do
:defer -> loop(parent, timeout, num)
after timeout ->
send(parent, {:unload_part, num})
end
end
def start_link(parent, timeout, num) do
spawn_link(fn -> loop(parent, timeout, num) end)
end
end