diff options
author | archie <archie@FreeBSD.org> | 2000-04-05 18:38:21 +0000 |
---|---|---|
committer | archie <archie@FreeBSD.org> | 2000-04-05 18:38:21 +0000 |
commit | 57af21e428f99e75a1472c9eacffe8cda928411e (patch) | |
tree | 42695d015d95ef600beb8464763dfe9920f1b49b /sys/kern/tty.c | |
parent | 73d40971f4170b3b8996e5ac074646dc6696d52c (diff) | |
download | FreeBSD-src-57af21e428f99e75a1472c9eacffe8cda928411e.zip FreeBSD-src-57af21e428f99e75a1472c9eacffe8cda928411e.tar.gz |
Fix a bug where SIGIO was not being delivered to a process requesting
async I/O when a tty device became writable.
PR: kern/8324
Submitted by: Don Lewis <Don.Lewis@tsc.tdk.com>
Diffstat (limited to 'sys/kern/tty.c')
-rw-r--r-- | sys/kern/tty.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c index b8eff2c..f393caf 100644 --- a/sys/kern/tty.c +++ b/sys/kern/tty.c @@ -2114,6 +2114,8 @@ ttwwakeup(tp) if (tp->t_wsel.si_pid != 0 && tp->t_outq.c_cc <= tp->t_olowat) selwakeup(&tp->t_wsel); + if (ISSET(tp->t_state, TS_ASYNC) && tp->t_sigio != NULL) + pgsigio(tp->t_sigio, SIGIO, (tp->t_session != NULL)); if (ISSET(tp->t_state, TS_BUSY | TS_SO_OCOMPLETE) == TS_SO_OCOMPLETE && tp->t_outq.c_cc == 0) { CLR(tp->t_state, TS_SO_OCOMPLETE); |