Page MenuHomeFreeBSD

D41605.id131259.diff
No OneTemporary

D41605.id131259.diff

diff --git a/sys/kern/tty.c b/sys/kern/tty.c
--- a/sys/kern/tty.c
+++ b/sys/kern/tty.c
@@ -253,9 +253,6 @@
ttyoutq_free(&tp->t_outq);
tp->t_outlow = 0;
- knlist_clear(&tp->t_inpoll.si_note, 1);
- knlist_clear(&tp->t_outpoll.si_note, 1);
-
if (!tty_gone(tp))
ttydevsw_close(tp);
@@ -392,8 +389,11 @@
}
/* If revoking, flush output now to avoid draining it later. */
- if (fflag & FREVOKE)
+ if (fflag & FREVOKE) {
tty_flush(tp, FWRITE);
+ knlist_delete(&tp->t_inpoll.si_note, curthread, 1);
+ knlist_delete(&tp->t_outpoll.si_note, curthread, 1);
+ }
tp->t_flags &= ~TF_EXCLUDE;
@@ -1120,6 +1120,8 @@
ttyoutq_free(&tp->t_outq);
seldrain(&tp->t_inpoll);
seldrain(&tp->t_outpoll);
+ knlist_clear(&tp->t_inpoll.si_note, 0);
+ knlist_clear(&tp->t_outpoll.si_note, 0);
knlist_destroy(&tp->t_inpoll.si_note);
knlist_destroy(&tp->t_outpoll.si_note);

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 9, 12:11 PM (7 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28576930
Default Alt Text
D41605.id131259.diff (884 B)

Event Timeline