aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2016-03-30 15:32:22 +0200
committerSverker Eriksson <[email protected]>2016-03-30 15:32:22 +0200
commitd166fec5d5c901a93e21a1ea7b3165b6fe68d320 (patch)
treee85a977b3785b0db712e20fe17be6c80ca162faa
parent303ccb07dbc4a6d3729017dc9d175a2ec9636ae3 (diff)
downloadotp-d166fec5d5c901a93e21a1ea7b3165b6fe68d320.tar.gz
otp-d166fec5d5c901a93e21a1ea7b3165b6fe68d320.tar.bz2
otp-d166fec5d5c901a93e21a1ea7b3165b6fe68d320.zip
erts: Fix "hanging" VM caused by exiting tty_sl driver
Bug introduced on master in a31eab5469b7740d.
-rw-r--r--erts/emulator/drivers/unix/ttsl_drv.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/erts/emulator/drivers/unix/ttsl_drv.c b/erts/emulator/drivers/unix/ttsl_drv.c
index 4f15ce0980..35ccfa589a 100644
--- a/erts/emulator/drivers/unix/ttsl_drv.c
+++ b/erts/emulator/drivers/unix/ttsl_drv.c
@@ -823,12 +823,13 @@ static void ttysl_to_tty(ErlDrvData ttysl_data, ErlDrvEvent fd) {
if (sz == 0) {
driver_select(ttysl_port,(ErlDrvEvent)(long)ttysl_fd,
ERL_DRV_WRITE,0);
- if (ttysl_terminate)
+ if (ttysl_terminate) {
/* flush has been called, which means we should terminate
when queue is empty. This will not send any exit
message */
DEBUGLOG(("ttysl_to_tty: ttysl_terminate normal\n"));
driver_failure_atom(ttysl_port, "normal");
+ }
break;
}
}