0

子を作成するスーパーバイザを作成します (たとえば、ポートでリッスンするプロセス)。スーパーバイザーの 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]} }.

関連している

4

1 に答える 1