Page MenuHomeFreeBSD

wait6(): fix reporting of orphan exits
AbandonedPublic

Authored by kib on Sat, Jul 18, 9:58 PM.
Tags
None
Referenced Files
F163403724: D58331.diff
Wed, Jul 22, 9:57 PM
F163386393: D58331.id182187.diff
Wed, Jul 22, 6:06 PM
F163384061: D58331.id182187.diff
Wed, Jul 22, 5:36 PM
Unknown Object (File)
Tue, Jul 21, 9:37 PM
Unknown Object (File)
Tue, Jul 21, 5:33 PM
Unknown Object (File)
Tue, Jul 21, 8:26 AM
Subscribers

Details

Reviewers
markj
kevans
Summary
Due to the way the exit from the loop checking for orphans was
organized, the status of an eligible orphan was dropped to the floor.
Directly exit from kern_wait6() if orphan to be reported.

exit1() did not woke up the real parent, only the debugger and procdesc
waiter.  Look up the real parent and wake it up on the orphaned child
exit.

Mark the process which was reported through the orphaned list with a
flag, to avoid duplicate wait() returns.  This is needed because the
process itself does not manage its orphans list, an orphan is kept there
until reparented.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped