<div dir="ltr">Thanks Jesper, this is my 13th Day with Erlang (Its new year resolution for me to learn Erlang this year and make at least 1 project on concurrency :))<div><br></div><div>I will take a look at lager btw</div><div><br></div><div>Thank you again</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 13, 2015 at 11:02 AM, Jesper Louis Andersen <span dir="ltr"><<a href="mailto:jesper.louis.andersen@gmail.com" target="_blank">jesper.louis.andersen@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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" target="_blank">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"><div><div class="h5">On Tue Jan 13 2015 at 7:56:03 PM Harit Himanshu <<a href="mailto:harit.subscriptions@gmail.com" target="_blank">harit.subscriptions@gmail.com</a>> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><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></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>
</blockquote></div><br></div>