<div dir="ltr">Hello,<div><br></div><div>this patch has been converted to a bug-report and a ticket is created and placed in our backlog. The reason for this is that we believe the matter needs further investigation, which we have not been able to make time for yet. The ticket will be prioritized along with the rest of the items in our backlog.</div>
<div><br></div><div>Thanks for your contribution!</div><div><br></div><div>Best Regards</div><div>/siri</div><div><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/16 Stefan Zegenhagen <span dir="ltr"><<a href="mailto:stefan.zegenhagen@arcutronix.com" target="_blank">stefan.zegenhagen@arcutronix.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear all,<br>
<br>
since the discussion seems to have gotten quiet, I've prepared a patch<br>
to restart the discussion of this topic.<br>
<br>
In an interactive shell, the shell process has no means to reliably get<br>
the exit reason of the associated user_drv and, therefore, cannot<br>
meaningfully react on errors reported by the user_drv. However, it<br>
occasionally is required to know why an interactive shell session was<br>
terminated.<br>
<br>
The patch attached to this e-mail solves the issue by always propagating<br>
the exit reason of the user_drv to the shell process. In summary, the<br>
patch does the following:<br>
<br>
* propagate the correct exit reason of the user_drv to the shell<br>
under all circumstances<br>
* always make sure that the shell process terminates when the<br>
user_drv has exited<br>
* give the shell process two seconds time to react on the exit<br>
signal before forcedly killing it<br>
<br>
Shell processes using I/O functionality from the io.erl module will be<br>
largely unaffected because io.erl catches exits of the group_leader()<br>
during io_requests and translates them to {error, terminated} error<br>
codes (independent of the exit reason found in the exit signal). Shell<br>
processes implementing the I/O protocol themselfs might experience<br>
unexpected 'EXIT' reasons.<br>
<br>
The patch makes sure that shell is forcedly killed as before, it only<br>
gives the shell process a little time to terminate itself before doing<br>
so. It also makes sure that the shell is killed under *ALL*<br>
circumstances, not just while some I/O client is waiting for input.<br>
<br>
<br>
Kind regards,<br>
<br>
--<br>
Dr. Stefan Zegenhagen<br>
<br>
arcutronix GmbH<br>
Garbsener Landstr. 10<br>
30419 Hannover<br>
Germany<br>
<br>
Tel: <a href="tel:%2B49%20511%20277-2734" value="+495112772734">+49 511 277-2734</a><br>
Fax: <a href="tel:%2B49%20511%20277-2709" value="+495112772709">+49 511 277-2709</a><br>
Email: <a href="mailto:stefan.zegenhagen@arcutronix.com">stefan.zegenhagen@arcutronix.com</a><br>
Web: <a href="http://www.arcutronix.com" target="_blank">www.arcutronix.com</a><br>
<br>
*Synchronize the Ethernet*<br>
<br>
General Managers: Dipl. Ing. Juergen Schroeder, Dr. Josef Gfrerer -<br>
Legal Form: GmbH, Registered office: Hannover, HRB 202442, Amtsgericht<br>
Hannover; Ust-Id: DE257551767.<br>
<br>
Please consider the environment before printing this message.<br>
<br>_______________________________________________<br>
erlang-patches mailing list<br>
<a href="mailto:erlang-patches@erlang.org">erlang-patches@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-patches" target="_blank">http://erlang.org/mailman/listinfo/erlang-patches</a><br>
<br></blockquote></div><br></div>