aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_event.c
diff options
context:
space:
mode:
authorOlivier Houchard <cognet@FreeBSD.org>2003-11-04 01:41:47 +0000
committerOlivier Houchard <cognet@FreeBSD.org>2003-11-04 01:41:47 +0000
commit7922cdc855467c3b1e8268fc446885f38950406d (patch)
tree0d07607805abe659c3710f312143a8fae8b09e1c /sys/kern/kern_event.c
parentfce33fc5eb3356f304e40bd9593328c66d821b39 (diff)
downloadsrc-7922cdc855467c3b1e8268fc446885f38950406d.tar.gz
src-7922cdc855467c3b1e8268fc446885f38950406d.zip
I believe kbyanc@ really meant this in rev 1.58.
Use zpfind() to see if the process became a zombie if pfind() doesn't find it and if the caller wants to know about process death, so that the caller knows the process died even if it happened before the kevent was actually registered. MFC after: 1 week
Notes
Notes: svn path=/head/; revision=122019
Diffstat (limited to 'sys/kern/kern_event.c')
-rw-r--r--sys/kern/kern_event.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c
index 85ee24e46efb..63a914f5d276 100644
--- a/sys/kern/kern_event.c
+++ b/sys/kern/kern_event.c
@@ -195,12 +195,12 @@ filt_procattach(struct knote *kn)
immediate = 0;
p = pfind(kn->kn_id);
- if (p == NULL)
- return (ESRCH);
if (p == NULL && (kn->kn_sfflags & NOTE_EXIT)) {
p = zpfind(kn->kn_id);
immediate = 1;
}
+ if (p == NULL)
+ return (ESRCH);
if ((error = p_cansee(curthread, p))) {
PROC_UNLOCK(p);
return (error);