<div dir="ltr"><div>Hi Michal!</div><div><br></div><div>Sorry for the delay, but we had to investigate a bit and discuss this before we could answer.</div><div><br></div><div>First of all, the implementation would be rather extensive and error prone since it would cause a new possible return value from proc_lib:spawn_opt and proc_lib:start*. This must of course be handled by all users, including all gen* behaviours and the supervisor, requiring extensive testing and thorough documentation.</div>
<div><br></div><div>When it comes to spawning processes on remote nodes, a change of the distribution protocol would be needed to allow the 'monitor' option (i.e. to make spawn+monitor atomic). We would need to consider if it is ok to allow using monitor with proc_lib on local node but not on remote node, or if the distribution must be updated first.</div>
<div><br></div><div>Jobs with such impact on core functionality always require quite much effort from our side, even if they are implemented by our excellent open source contributors. We need to fully understand all changes and also do a quite large investigation to make sure no consequence is missed. It is also such a big change, that we would probably not allow</div>
<div>it in a maintenance release, but rather postpone it to the next major release.</div><div><br></div><div>In order to help us get an idea of the need and the priority of this feature, would it be possible for you to elaborate a bit on the use case? Other people on the list are of course also very welcome with their comments and thoughts on this.</div>
<div><br></div><div>Thanks</div><div>/siri</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-24 18:16 GMT+01:00 Michał Ptaszek <span dir="ltr"><<a href="mailto:erlang@ptaszek.net" target="_blank">erlang@ptaszek.net</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Even if there was an additional cost for gen modules when spawning new process I still don't see a connection with a complete removal of 'monitor' flag from available options in spawn_opt BIF (or rather, replacing it with throw(badarg)). Moreover there is no public API allowing people to spawn gen_servers on the remote nodes (and only the remote spawn_opt functions were crippled by that change). <div>

<br><div>Would a patch re-enabling that flag be accepted by the OTP team?</div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Mar 24, 2014 at 5:37 PM, Siri Hansen <span dir="ltr"><<a href="mailto:erlangsiri@gmail.com" target="_blank">erlangsiri@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>From the notes in the ticket:</div><div><br></div><div>"Some analysis yields that the cause is that the gen_server:start() call</div>

<div>ends up in erlang:spawn_opt(..., [monitor]) which return {Pid, Monitor},</div>
<div>making the proc_lib:sync_wait() wait for {Pid, Monitor} and not Pid</div><div>which is what the newly spawned process sends in the ack-message."</div><div><br></div><div>I haven't investigated further, so I don't know anything more about it. It doesn't seem too hard to solve, though, so it seems strange that the solution was to throw a badarg. Or maybe I missed something crucial...</div>


<div><br></div><div>/siri</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-22 11:44 GMT+01:00 Michał Ptaszek <span dir="ltr"><<a href="mailto:erlang@ptaszek.net" target="_blank">erlang@ptaszek.net</a>></span>:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Hey everyone, <div><br></div><div>can anyone please shed some more light on OTP-6345? </div>
<div><br></div>
<div>For some reasons we can not atomically spawn processes with proc_lib:spawn_opt with 'monitor' flag. The same problem happens with erlang:spawn_opt/5 where we can not spawn a remote process with 'monitor' (however linking is totally ok). </div>



<div><br></div><div>Thanks, </div><div>Michal </div></div>
<br></div></div>_______________________________________________<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/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>