aboutsummaryrefslogtreecommitdiffstats
path: root/erts/etc/unix/to_erl.c
AgeCommit message (Collapse)Author
2013-07-22Merge branch 'sze/to_erl/OTP-11206' into maintBjörn-Egil Dahlberg
* sze/to_erl/OTP-11206: Fix changing terminal parameters in to_erl
2013-07-22Fix changing terminal parameters in to_erlStefan Zegenhagen
One of our devices does not like 'to_erl' to be run over a serial port. When to_erl is started, we see "Attaching to /tm<0xFF>" being printed and the device then refuses to accept any input. Occasionally, we have seen a linux kernel error message "serial8250: too much work for irq16" simultaneously. After some debugging we found out that cause is a call to tcsetattr() by to_erl, immediately preceeded by some printf(). The UART in our device doesn't like hardware parameters to be changed while output is concurrently active. In fact, the GNU libc manual also mentions that it might be dangerous to change UART hardware parameters when a transmission is ongoing. The patch attached to this e-mail changes the behaviour of to_erl to use TCSADRAIN instead of TCSANOW when changing terminal parameters. This makes the serial driver wait for the output queues to be empty before applying the terminal parameter change.
2013-06-12Update copyright yearsBjörn-Egil Dahlberg
2013-04-04Changed handshake from to_erl to run_erl, on behalf of shell searchFredrik Gustafsson
2012-03-30Update copyright yearsBjörn-Egil Dahlberg
2012-01-03to_erl: Remove compiler warningsBjörn-Egil Dahlberg
2011-05-20Update copyright yearsBjörn-Egil Dahlberg
2011-03-16erts: Remove unused variablesTuncer Ayaz
2009-11-28to_erl: Include strerror(errno) in error messagesMagnus Henoch
to_erl likes to print the message "No running Erlang on pipe ...", no matter what the problem actually was. The wording might make you forget that you just need to run to_erl as another user, for example. With this change, to_erl will print the system error message in addition to its own. Example output: No running Erlang on pipe pipes/erlang.pipe.5: Permission denied (wrong user, wrong permissions, etc) No running Erlang on pipe pipes/erlang.pipe.5: No such device or address (this actually means "no running Erlang") No running Erlang on pipe pipes/erlang.pipe: No such file or directory (not only is there no running Erlang, there are also no pipes at all)
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP