<div dir="ltr">On 17 May 2016 at 00:49, Fred Hebert <span dir="ltr"><<a href="mailto:mononcqc@ferd.ca" target="_blank">mononcqc@ferd.ca</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 05/16, Chandru wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
No, it's not. The reason a terminate callback is provided in a gen_server<br>
is so that a process can clean up when it terminates, not to delegate it to<br>
other processes.<br>
<br>
</blockquote>
<br></span>
I'm gonna side with Loďc here. The terminate callback is good for any process-local cleanup or optimistic work, but is by no means a safe way to terminate anything.<br>
<br>
For example, if you have many children to terminate and through some interleaving brutall_kill is triggered (or anyone calls exit(Pid, kill)), whatever work you wanted to do in terminate will be skipped by a non-trappable exit signal.<br></blockquote><div><br></div><div>Agreed, but how does adding the connection handling process (in Oliver's use case) to a simple_one_for_one supervisor help? It doesn't give him anything other than the illusion of being "supervised".</div><div><br></div><div>Chandru</div><div><br></div></div></div></div>