0

我试图从 ErlNNTP 理解这段主管代码,即使在阅读了关于 start-child 的 erlang 文档(Erlang n00b)(http://www.erlang.org/doc/man )之后,我也无法理解它/supervisor.html#start_child-2 )

start_connection_handler (Socket) -> supervisor:start_child (?MODULE, {Socket, {connection_handler, start_link, [Socket]}, 永久, 10000, worker, [connection_handler]})。

我不太了解我希望成为 SupRef 的 'Socket' 参数。我显然没有正确解析参数列表或理解调用。谁能给我解释一下?

4

1 回答 1

0

第二个参数 tosupervisor:start_child/2是一个子规范,其格式为:

{Id,StartFunction,RestartType,Shutdowntime,ProcessType,Modules}

在哪里

  • Id是在主管中唯一的孩子的标识符,它可以是任何数据类型。

  • StartFunction是一个元组{Module,Function,Args},它是启动子进程的调用。

  • RestartType告诉主管如何重新启动这个孩子,它可以有值permanenttransienttemporary

  • ShutdownTime是子进程在被终止之前被允许在终止中花费的金额。

  • ProcessType孩子是 aworker还是supervisor.

  • Modules实现子模块的列表

代码升级时使用后两个。

因此,在您的情况下Socket,它被用作标识符。这样做意味着当您为新套接字启动处理程序时,您将获得一个唯一标识符。

于 2013-02-23T19:49:35.277 回答