我需要让GenServer
监控一项任务,因此,我这样做:
GenServer.call(server_pid, {:monitor_task, self()})
服务器中的:
def handle_call({:monitor_task, task_pid}, _from, state) do
ref = Process.monitor(task_pid)
{:reply, ref, state}
end
然而,我收到错误:
** (stop) exited in: GenServer.call(#PID<0.768.0>, {:monitor_task, #PID<0.849.0>}, 5000)
** (EXIT) bad return value: :ok
有什么想法吗?
答案 0 :(得分:7)
调用Logger的handle_info
回调需要返回{:noreply, state}
或{:stop, reason, state}
,但对Logger的调用返回:ok
,这是回调的无效返回值,是导致你看到错误的原因。