<br><br><div class="gmail_quote">On Sat, May 23, 2009 at 10:57 AM, Kaiduan Xie <span dir="ltr"><<a href="mailto:kaiduanx@gmail.com">kaiduanx@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Dave,<br>
<br>
What is the rationale to put the process under the simple-one-for-one<br>
supervision? If the process does not need to be-restarted when it<br>
terminates, there is no reason to supervise it. For the TCP connection<br>
or call, if something goes wrong and causes the process to die, we can<br>
just let it die without restarting the process.</blockquote><div><br></div><div>It might be useful if you maintain a process pool for TCP connections. Say you start up fifty processes all waiting on a socket accept (as in the gen_tcp man page example). If each of those processes is supervised, they'll be restarted if for some reason, they die. Right?</div>
<div><br></div><div>In my own code, I've not done this. Instead, I set trap_exit to true, then handle re-spawns in my gen_server:info callback.</div><div><br></div><div>Until you asked your question, I hadn't even thought of using a supervisor for that reason. Might that be a justification?</div>
<div><br></div><div>Keith</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
<br>
Thanks,<br>
<font color="#888888"><br>
kaiduan<br>
</font><div><div></div><div class="h5"><br>
On Sat, May 23, 2009 at 10:06 AM, Dave Smith <<a href="mailto:dizzyd@gmail.com">dizzyd@gmail.com</a>> wrote:<br>
> On Sat, May 23, 2009 at 7:41 AM, Kaiduan Xie <<a href="mailto:kaiduanx@gmail.com">kaiduanx@gmail.com</a>> wrote:<br>
>> What is the typical usage for simple-one-for-one restart strategy? For<br>
>> example, for a call processing server we need to spawn a process for<br>
>> each call, do we need to put it under a simple-one-for-one supervision<br>
>> tree? The same question applies to a TCP server which spawns a process<br>
>> for each incoming TCP connection.<br>
><br>
> Yup, that's how I generally use it. Any situation where you need many<br>
> (usually anonymous) instances of the same type of process is a good<br>
> fit for simple_one_to_one.<br>
><br>
> D.<br>
><br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br>