【问题标题】:Get PID of myself (supervisor)获取自己的 PID(主管)
【发布时间】:2013-10-07 12:55:20
【问题描述】:

我创建了一个创建子进程的主管(例如,侦听端口的进程)。我想将主管的 PID SupPid 传递给孩子,这样它就可以用 supervisor:start_child() 动态启动其他孩子(例如,当收到连接时)。如何从主管内部获取主管的 PID?

-module(the_supervisor)

start_link() ->
    supervisor:start_link({local, ?MODULE}, ?MODULE, []).

init([]) ->
    SupPid = get_my_own_pid(), % <-- get pid of the supervisor and pass it later
    ChildSpec = ?CHILD_WITH_ARGS(some_children, worker, [SupPid]),
    {ok, {{one_for_one, 5, 10},
          [ChildSpec]} }.

相关

【问题讨论】:

    标签: erlang


    【解决方案1】:

    这是erlang:self() 函数。

    【讨论】:

      猜你喜欢
      • 2016-07-03
      • 1970-01-01
      • 2011-06-17
      • 2011-12-28
      • 1970-01-01
      • 2020-01-08
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多