Hi Harit,<br><br>I don't think there is any way you could do that better, without knowing what semantics you are striving for in the first place. The code looks fine to me, and depending in which context it runs, it could be perfect or have a problem. It is really hard to tell without any more information.<div><br></div><div>For a larger system, you may gain some by using either the 'lager' application (<a href="http://github.com/basho/lager">github.com/basho/lager</a>) or the 'error_logger' to report progress. That way, you can later route logging messages in a favorable fashion.</div><div><br></div><div>Another thing you could look into is to use 'proc_lib' to turn the framework you have built into an OTP-compliant framework. But that may be a bit out on the horizon, depending on how much time you have spent with Erlang to this date.</div><div><br><div class="gmail_quote">On Tue Jan 13 2015 at 7:56:03 PM Harit Himanshu <<a href="mailto:harit.subscriptions@gmail.com">harit.subscriptions@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The recent problem I worked on is  <div><br></div><div>Write a function my_spawn(Mod, Func, Args, Time) that behaves like spawn(Mod, Func, Args) but with one difference. If the spawned process lives for more than Time seconds, it should be killed.<br></div><div><br></div><div>My attempt looks like  </div><div><br></div><div><div>my_spawn(Mod, Func, Args, Time) -></div><div>  Pid = spawn(Mod, Func, Args),</div><div>  io:format("created new process: ~p.~n", [Pid]),</div><div>  timer:kill_after(Time * 1000),</div><div>  Pid.</div></div><div><br></div><div>and when I run I see  </div><div><p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">1>  c(error_handling).</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">{ok,error_handling}</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">2> Pid1 = error_handling:my_spawn(area_server0, loop, [], 30).   </p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">created new process: <0.39.0>.</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)"><0.39.0></p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">3> Pid1 ! {self(), {square, 10}}.</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">{<0.32.0>,{square,10}}</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">4> receive X->X end.</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">100</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">5> Pid1 ! {self(), {square, 20}}.</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">{<0.32.0>,{square,20}}</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">6> receive Y->Y end.             </p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">400</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">** exception error: killed</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(131,148,150);background-color:rgb(2,43,54)">7> </p></div><div><br></div><div>Looking for suggestions on the code or ways to write it better</div><div><br></div><div>Thanks</div><div><br></div></div>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
</blockquote></div></div>