diff options
author | jmallett <jmallett@FreeBSD.org> | 2002-10-01 17:15:53 +0000 |
---|---|---|
committer | jmallett <jmallett@FreeBSD.org> | 2002-10-01 17:15:53 +0000 |
commit | 7a693db242641440dad298d332b3cc5a4c88f8f4 (patch) | |
tree | 07d2fcfbfe85d84af8cf79f8fec57733afa19e18 /sys/kern/tty.c | |
parent | b5dfcc0b31407d0d79c551549f16736d600e350a (diff) | |
download | FreeBSD-src-7a693db242641440dad298d332b3cc5a4c88f8f4.zip FreeBSD-src-7a693db242641440dad298d332b3cc5a4c88f8f4.tar.gz |
Back our kernel support for reliable signal queues.
Requested by: rwatson, phk, and many others
Diffstat (limited to 'sys/kern/tty.c')
-rw-r--r-- | sys/kern/tty.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c index 590e8de..c075a47 100644 --- a/sys/kern/tty.c +++ b/sys/kern/tty.c @@ -102,7 +102,6 @@ #include <sys/malloc.h> #include <sys/filedesc.h> #include <sys/sysctl.h> -#include <sys/ksiginfo.h> #include <vm/vm.h> #include <vm/pmap.h> @@ -1842,24 +1841,21 @@ int ttycheckoutq(struct tty *tp, int wait) { int hiwat, s; - sigset_t oldmask, newmask; + sigset_t oldmask; hiwat = tp->t_ohiwat; SIGEMPTYSET(oldmask); s = spltty(); if (wait) - ksiginfo_to_sigset_t(curproc, &oldmask); + oldmask = curproc->p_siglist; if (tp->t_outq.c_cc > hiwat + OBUFSIZ + 100) while (tp->t_outq.c_cc > hiwat) { ttstart(tp); if (tp->t_outq.c_cc <= hiwat) break; - if (!wait) { - ksiginfo_to_sigset_t(curproc, &newmask); - if (SIGSETEQ(newmask, oldmask)) { - splx(s); - return (0); - } + if (!(wait && SIGSETEQ(curproc->p_siglist, oldmask))) { + splx(s); + return (0); } SET(tp->t_state, TS_SO_OLOWAT); tsleep(TSA_OLOWAT(tp), PZERO - 1, "ttoutq", hz); |