<div dir="ltr">I solved this problem by using linking workers.<div><br></div><div>          s_1_f_1</div><div>udp_sup -----  udp_worker_sup - udp_worker</div><div>                   |- dtls_worker_sup - dtls_worker</div><div>                   |- srtp_worker_sup - srtp_worker</div><div>                   |- stun_worker_sup - stun_worker</div><div><br></div><div>start udp_worker for single UDP socket,</div><div>and start dtls/srtp/stun workers in init() of udp_worker,</div><div>and udp_worker link with ever other workers.</div><div>if any worker terminates, ever other worker handling</div><div>same UDP socket will terminate.</div><div><br></div><div>no need to supervisor for single UDP socket</div><div>and terminate supervisor for socket closing.</div><div><br></div><div>thanks</div><div><br></div><div>Jxck</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">2019年2月15日(金) 8:23 <<a href="mailto:block.rxckin.beats@gmail.com">block.rxckin.beats@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">in that case, is child of udp_sup "permanent" or "temporary" ?<br>
<br>
if temporary, udp_sup seems ignore udp_worker's terminate, and proto_sup still alive. <br>
<br>
if permanent, udp_sup try to restart child which I don't expected. and if *failed to restart* udp_sup will terminate.<br>
<br>
so, you mean, "fail to restart permanent  udp_worker(which unexpected) will terminate udp_sup eventually in one_for_all" is correct way to terminate supervisor from its child?<br>
<br>
thanks<br>
Jxck<br>
<br>
2019/02/15 2:09、Vance Shipley <<a href="mailto:vances@motivity.ca" target="_blank">vances@motivity.ca</a>>のメール:<br>
<br>
> On Thu, Feb 14, 2019 at 2:40 PM <a href="mailto:block.rxckin.beats@gmail.com" target="_blank">block.rxckin.beats@gmail.com</a><br>
> <<a href="mailto:block.rxckin.beats@gmail.com" target="_blank">block.rxckin.beats@gmail.com</a>> wrote:<br>
>>> No, I meant:<br>
>>>    udp_sup<br>
>>>         -> udp_worker<br>
>>>         -> proto_sup<br>
>>>              -> dtls_woker<br>
>>>              -> stun_worker<br>
>>>              -> srtp_worker<br>
>> <br>
>> in that case,<br>
>> udp_worker can terminate proto_sup<br>
>> but who terminate udp_sup ?<br>
> <br>
> No, udp_sup terminates proto_sup. Use a one_for_all strategy on<br>
> udp_sup. When udp_worker exits all the others are terminated by the<br>
> supervisors.<br>
> <br>
> -- <br>
>     -Vance<br>
</blockquote></div>