summaryrefslogtreecommitdiffstats
path: root/sys/kern/tty.c
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1995-02-24 02:36:01 +0000
committerache <ache@FreeBSD.org>1995-02-24 02:36:01 +0000
commitf5b2c37e27d8387fb80fc08a03ac77c2973c6a85 (patch)
tree03525bc706be4b23a34aa19364d06b82356faf5b /sys/kern/tty.c
parent18a56536822272f24717a0db33e0e8ef0d124754 (diff)
downloadFreeBSD-src-f5b2c37e27d8387fb80fc08a03ac77c2973c6a85.zip
FreeBSD-src-f5b2c37e27d8387fb80fc08a03ac77c2973c6a85.tar.gz
Add releasing of input flow control into
ttyflush(FREAD)
Diffstat (limited to 'sys/kern/tty.c')
-rw-r--r--sys/kern/tty.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c
index 82907ac..33c75a0 100644
--- a/sys/kern/tty.c
+++ b/sys/kern/tty.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)tty.c 8.8 (Berkeley) 1/21/94
- * $Id: tty.c,v 1.29 1995/02/22 23:20:51 ache Exp $
+ * $Id: tty.c,v 1.28 1995/02/15 22:25:51 ache Exp $
*/
#include "snp.h"
@@ -1083,6 +1083,16 @@ ttyflush(tp, rw)
wakeup((caddr_t)&tp->t_outq);
selwakeup(&tp->t_wsel);
}
+ if ((rw & FREAD) &&
+ ISSET(tp->t_state, TS_TBLOCK) && tp->t_rawq.c_cc < TTYHOG/5) {
+ if (ISSET(tp->t_iflag, IXOFF) &&
+ tp->t_cc[VSTART] != _POSIX_VDISABLE &&
+ putc(tp->t_cc[VSTART], &tp->t_outq) == 0 ||
+ ISSET(tp->t_cflag, CRTS_IFLOW)) {
+ CLR(tp->t_state, TS_TBLOCK);
+ ttstart(tp);
+ }
+ }
splx(s);
}
OpenPOWER on IntegriCloud