In article <bf7717e-ee5-8454-52e8-197e27baf...@sdf.org>, RVP <r...@sdf.org> wrote: >On Mon, 3 Jan 2022, Christos Zoulas wrote: > >> Yes, in the end screen was at fault for setting CLOCAL in the pty which >> prevented from SIGHUP from being sent. I fixed it. >> > >I think the problem may be that in canonical mode, the slave goes to >sleep waiting for input (in tty.c:ttread()) and nothing wakes it up >when the master side is closed. The patch below seems to work, but, >please scrutinize it carefully as I've only tested it lightly and I'm >also operating without a license :) > >---START PATCH--- >--- sys/kern/tty_pty.c.orig 2021-10-11 04:12:12.543371554 +0000 >+++ sys/kern/tty_pty.c 2022-01-04 11:08:51.163444059 +0000 >@@ -637,6 +637,7 @@ > mutex_spin_enter(&tty_lock); > CLR(tp->t_state, TS_CARR_ON); > tp->t_oproc = NULL; /* mark closed */ >+ cv_broadcast(&tp->t_rawcv); /* wake-up slave */ > mutex_spin_exit(&tty_lock); > return 0; > }
Isn't t_rawcv used only during the open? (t_rawcvf is used in write, and t_outcvf is used in read). christos