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

Reply via email to