summaryrefslogtreecommitdiffstats
path: root/sys/kern/tty.c
diff options
context:
space:
mode:
authorjmallett <jmallett@FreeBSD.org>2002-10-01 17:15:53 +0000
committerjmallett <jmallett@FreeBSD.org>2002-10-01 17:15:53 +0000
commit7a693db242641440dad298d332b3cc5a4c88f8f4 (patch)
tree07d2fcfbfe85d84af8cf79f8fec57733afa19e18 /sys/kern/tty.c
parentb5dfcc0b31407d0d79c551549f16736d600e350a (diff)
downloadFreeBSD-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.c14
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);
OpenPOWER on IntegriCloud