summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_event.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/kern_event.c')
-rw-r--r--sys/kern/kern_event.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c
index 0fce41b..2db8524 100644
--- a/sys/kern/kern_event.c
+++ b/sys/kern/kern_event.c
@@ -557,9 +557,12 @@ start:
kq->kq_state |= KQ_SLEEP;
error = tsleep(kq, PSOCK | PCATCH, "kqread", timeout);
splx(s);
- if (error == 0 || error == ERESTART)
+ if (error == 0)
goto retry;
- if (error == EWOULDBLOCK)
+ /* don't restart after signals... */
+ if (error == ERESTART)
+ error = EINTR;
+ else if (error == EWOULDBLOCK)
error = 0;
goto done;
}
OpenPOWER on IntegriCloud