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.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Skipped - Unit
Tests Skipped