Я пытаюсь вызвать функцию handle_cast в GenServer из своего собственного API. Однако функция handle_cast, похоже, не вызывается. Я поместил отладочные операторы, чтобы понять, где они ломаются.
Отладка 5 печатается, но отладка 4 не печатается.
Примечание: функция done()
вызывается из другого GenServer
.
# Public API
def done(pid) do
GenServer.cast(__MODULE__, {:done, pid})
IO.puts("Debug 5")
end
#Server
def handle_cast({:done, pid}, {num, startTime, nbor_map}) do
IO.puts("Debug 4")
if num <= 1 do
IO.puts("Time taken:")
end_time = System.monotonic_time(:millisecond)
time_taken = end_time - startTime
IO.inspect(time_taken)
System.halt(0)
end
{:noreply, {num - 1, startTime, nbor_map}}
end
Кроме того, я не получаю никаких ошибок компиляции. Может кто-нибудь подсказать, почему не вызывается функция handle_cast
или почему не печатается «Debug 4»?