Erlang主管:start_child参数

时间:2013-02-23 11:34:46

标签: erlang nntp

我正在尝试从ErlNNTP中理解这一段管理员代码,即使在start-child(http://www.erlang.org/doc/man/supervisor.html#start_child-2

上阅读了erlang文档(Erlang n00b)之后我也无法理解它
  

start_connection_handler(套接字) - >       主管:start_child(?MODULE,{Socket,{connection_handler,start_link,[Socket]},permanent,10000,worker,[connection_handler]})。

我没有得到'Socket'参数,我希望它是一个SupRef。我显然没有正确解析参数列表或理解调用。任何人都可以向我解释一下吗?

1 个答案:

答案 0 :(得分:0)

supervisor:start_child/2的第二个arg是一个格式为:

的子规范
{Id,StartFunction,RestartType,Shutdowntime,ProcessType,Modules}

,其中

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

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

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

    < / LI>
  • ShutdownTime是允许子进程在终止之前花费多少才能终止。

  • ProcessType孩子是worker还是supervisor

  • Modules实施孩子的模块列表

代码升级时使用最后两个。

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