Erlang:对港口所有者死亡的坚定性

时间:2010-11-08 20:09:30

标签: erlang erlang-ports

当拥有生成端口的进程死亡并由主管重新启动时会发生什么?

  1. 旧港口是否有办法不与其所有者一起死亡,新的所有者“接管”?

  2. 如果失败了,是否可以确保生成的进程在其端口死亡时终止?

1 个答案:

答案 0 :(得分:5)

首先,请注意您不希望端口所有者死亡。因此,将任何“危险”代码移到另一个进程,并使端口所有者尽可能愚蠢。这是Erlang方式的缓解错误。现在,如果该过程死亡,那么事情真的很糟糕,所以在这种情况下,回收端口也可能很聪明。但是既然我们把所有东西都搬了出去,我们就指望那不会发生。

关于2,端口将在终止时发送特定消息,因此您可以安排生成的进程正常检测并终止它。参见

http://www.erlang.org/doc/reference_manual/ports.html