| Summary: | uthread_sigaction.c does not do anything wrt SA_NOCLDWAIT | ||
|---|---|---|---|
| Product: | Base System | Reporter: | shh <shh> |
| Component: | kern | Assignee: | freebsd-threads (Nobody) <threads> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | Unspecified | ||
| Hardware: | Any | ||
| OS: | Any | ||
Responsible Changed From-To: freebsd-bugs->jasone Over to maintainer. Responsible Changed From-To: jasone->freebsd-bugs Responsible Changed From-To: freebsd-bugs->freebsd-threads Assign to threads mailing list State Changed From-To: open->suspended In RELENG_5,6 and HEAD libc_r is deprecated in favour of libpthread and libthr. Nobody is working on libc_r bugs so mark this PR as suspended. State Changed From-To: suspended->closed libc_r is no longer supported |
THe man page (and also the kernel) do honor SA_NOCLDWAIT for sigaction. However the threads library prevents letting this be used as it silently bypasses this SIGCHLD processing. Here is the man page snipet: SA_NOCLDWAIT If this bit is set when calling sigaction() for the SIGCHLD signal, the system will not create zombie processes when children of the calling process ex- it. If the calling process subsequently issues a wait(2) (or equivalent), it blocks until all of the calling process's child processes terminate, and then returns a value of -1 with errno set to ECHILD.