Hi Erlangers<br><br>I found a bug in proc_lib, on windows (C:\Program Files\erl5.5.2\lib\stdlib-1.14.2\src\proc_lib.erl).<br>
<br>If one call gen_server:start(Module, start, Args, [{spawn_opt, [monitor]}]) the call <span style="font-weight: bold;">will not return</span> !<br><br>Some analysis yields that the cause is that the gen_server:start() call ends up in erlang:spawn_opt(..., [monitor]) which return
<span style="font-weight: bold;">{</span>Pid<span style="font-weight: bold;">, Monitor}</span>, making the proc_lib:sync_wait() wait for <span style="font-weight: bold;">{</span>Pid<span style="font-weight: bold;">, Monitor}
</span> and not Pid which is what the newly spawned process sends in the ack-message.<br><br>My guess of a fix is that proc_lib:spawn_opt() checks the return value from erlang:spawn_opt(). I'm including an <span style="font-weight: bold;">
untested</span> fix.<br><br>Cheers<br>/Fredrik<br>