2

我知道不支持在 C 节点上监视“进程”,但是如果我尝试为源自 Erlang 节点上的 C 节点的 pid 调用链接,我的 C 节点首先会收到一条ERL_LINK消息,然后过一会儿会收到一条ERL_EXIT消息因为显然链接的 Erlang 进程崩溃了。

可能是因为我的 C 节点没有响应ERL_LINK并且 Erlang 确定我的 C 节点“进程”已经死亡。

我想知道这是否被支持?以及 C 节点需要如何处理ERL_LINK消息才能使其工作。

4

1 回答 1

1

好消息:

其实很简单。由于我的 C 节点没有处理 ERL_LINK 消息,我认为链接的 Erlang 进程死亡似乎是我犯了一个错误。

如果 Erlang 节点链接到源自它的“pid”,则 C 节点不必做任何事情。一旦调用链接,C 节点将收到一条 ERL_LINK 消息,其中 from/to 填充了适当的 pid。如果 Erlang 进程死亡,它将收到 ERL_EXIT 消息。它的内容将是任何 Erlang 术语指定为 EXIT 消息的原因。如果 C 节点死亡/断开连接,则链接的 Erlang 进程将获得适当的 EXIT 消息。

坏消息:

erl_interface 不支持 C 节点将 ERL_EXIT 或 ERL_LINK 发送回 Erlang。似乎在某个时候考虑过它,但代码留在了一个名为“not_used”的文件夹中

于 2018-02-27T23:17:06.087 回答