0

我创建了一个创建子进程的主管(例如,监听端口的进程)。我想将主管的 PIDSupPid传递给孩子,因此它可以动态地启动其他孩子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]} }.

有关的

4

1 回答 1

3

这就是erlang:self()功能。

于 2013-10-01T12:00:58.060 回答