Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/sys_procdesc.c
| Show First 20 Lines • Show All 501 Lines • ▼ Show 20 Lines | if (hint == 0) { | ||||
| /* Mask off extra data. */ | /* Mask off extra data. */ | ||||
| event = (u_int)hint & NOTE_PCTRLMASK; | event = (u_int)hint & NOTE_PCTRLMASK; | ||||
| } | } | ||||
| /* If the user is interested in this event, record it. */ | /* If the user is interested in this event, record it. */ | ||||
| if ((kn->kn_sfflags & event) != 0) | if ((kn->kn_sfflags & event) != 0) | ||||
| kn->kn_fflags |= kn->kn_sfflags & event; | kn->kn_fflags |= kn->kn_sfflags & event; | ||||
| /* Report exit status */ | |||||
| if ((kn->kn_fflags & NOTE_EXIT) != 0) | |||||
| kn->kn_data = pd->pd_xstat; | |||||
| /* Process is gone, so flag the event as finished. */ | /* Process is gone, so flag the event as finished. */ | ||||
| if ((event & NOTE_EXIT) != 0) { | if ((event & NOTE_REAP) != 0 || | ||||
| ((event & NOTE_EXIT) != 0 && (kn->kn_sfflags & NOTE_REAP) == 0)) { | |||||
| kn->kn_flags |= EV_EOF | EV_ONESHOT; | kn->kn_flags |= EV_EOF | EV_ONESHOT; | ||||
| if (kn->kn_fflags & NOTE_EXIT) | |||||
| kn->kn_data = pd->pd_xstat; | |||||
| if (kn->kn_fflags == 0) | if (kn->kn_fflags == 0) | ||||
| kn->kn_flags |= EV_DROP; | kn->kn_flags |= EV_DROP; | ||||
| return (1); | return (1); | ||||
| } | } | ||||
| if ((kn->kn_fflags & NOTE_FORK) != 0) | if ((kn->kn_fflags & NOTE_FORK) != 0) | ||||
| kn->kn_data = pd->pd_last_child; | kn->kn_data = pd->pd_last_child; | ||||
| ▲ Show 20 Lines • Show All 294 Lines • Show Last 20 Lines | |||||