From b987a44176b0842184c50b2b8bef55a7e0e762a9 Mon Sep 17 00:00:00 2001 From: green Date: Wed, 17 May 2000 01:16:11 +0000 Subject: Put the wait(2) exit status in "data" for NOTE_EXIT kevents. --- sys/kern/kern_event.c | 5 +++++ sys/kern/kern_exit.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'sys/kern') diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index c22b248..46c8f26 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -264,6 +264,11 @@ filt_proc(struct knote *kn, long hint) if (event == NOTE_EXIT) { kn->kn_status |= KN_DETACHED; kn->kn_flags |= (EV_EOF | EV_ONESHOT); + /* + * Return the 16 bits of the wait(2) value. + */ + if (kn->kn_sfflags & NOTE_EXIT) + kn->kn_data = (intptr_t)hint & 0xffff; return (1); } diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 9115f97..0b16060 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -307,9 +307,10 @@ exit1(p, rv) switchticks = ticks; /* - * notify interested parties of our demise. + * Notify interested parties of our demise. Pass the lower (only) + * 16 bits of our exit code along with it. */ - KNOTE(&p->p_klist, NOTE_EXIT); + KNOTE(&p->p_klist, NOTE_EXIT | (rv & 0xffff)); /* * Notify parent that we're gone. If parent has the PS_NOCLDWAIT -- cgit v1.1