这是我的功能:
mydemonitor(Pid) ->
io:format("Demonitor : ~w ~n", [Pid]), %%For debugging and trying to see what's wrong
erlang:demonitor(Pid, [flush]).
这就是我得到的:
Demonitor : <0.41.0>
=ERROR REPORT==== 15-Oct-2014::15:32:19 ===
Error in process <0.47.0> with exit value: {badarg,[{erlang,demonitor,[<0.41.0>,[flush]],[]},{node3,mydemonitor,1,[{file,"node3.erl"},{line,213}]},{node3,stabilize,4,[{file,"node3.erl"},{line,147}]},{node3,node,5,[{file,"node3.erl"},{line,46}]}]}
我看着erlang:demonitor/2
和erlang:demonitor/1
的男人,似乎我使用了正确的语法。我试图使用demonitor / 1(因此没有刷新选项)但没有成功。
我真的没有看到什么是错的,任何想法都会受到高度赞赏:D
答案 0 :(得分:4)
demonitor/1
和demonitor/2
的参数不正在监控的进程的PID,但是monitor/2
返回的引用。