summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_event.c
diff options
context:
space:
mode:
authorsson <sson@FreeBSD.org>2009-09-16 03:49:54 +0000
committersson <sson@FreeBSD.org>2009-09-16 03:49:54 +0000
commit95d4e7d0750d9cb513c20c55282fbfb46b2c4a8a (patch)
tree4e459ad91b2bf9cbe26b4d39196166754fd16bf7 /sys/kern/kern_event.c
parenta386443e5123201c31ec7a193e83f022ede7f469 (diff)
downloadFreeBSD-src-95d4e7d0750d9cb513c20c55282fbfb46b2c4a8a.zip
FreeBSD-src-95d4e7d0750d9cb513c20c55282fbfb46b2c4a8a.tar.gz
Add EV_RECEIPT to kevents.
EV_RECEIPT is useful to disambiguating error conditions when multiple events structures are passed to kevent(2). The error code is returned in the data field and EV_ERROR is set. Approved by: rwatson (co-mentor)
Diffstat (limited to 'sys/kern/kern_event.c')
-rw-r--r--sys/kern/kern_event.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c
index 2630894..8ce7621 100644
--- a/sys/kern/kern_event.c
+++ b/sys/kern/kern_event.c
@@ -832,7 +832,7 @@ kern_kevent(struct thread *td, int fd, int nchanges, int nevents,
continue;
kevp->flags &= ~EV_SYSFLAGS;
error = kqueue_register(kq, kevp, td, 1);
- if (error) {
+ if (error || (kevp->flags & EV_RECEIPT)) {
if (nevents != 0) {
kevp->flags = EV_ERROR;
kevp->data = error;
OpenPOWER on IntegriCloud