以下代码是在我阅读JoeArmstrong撰写的ErlangProgramming Language一书时找到的 所以请解释我
on_exit(Pid, Fun) ->
spawn(fun() ->
process_flag(trap_exit, true),
link(Pid),
receive
{'EXIT', Pid, Why} ->
Fun(Why)
end
end).
答案 0 :(得分:2)
本章的标题是并发编程中的错误,并指的是如何使用并发编程(即链接的进程,监督,信号等)在Erlang中完成错误处理 。)
代码没有问题。这是一个演示如何处理由于某种原因退出的进程,通过链接新进程来监视第一个进程并在第二个进程中捕获第一个进程的退出信号。