DragonFly kernel List (threaded) for 2005-09
Re: libthread_xu pthread_exit() behaviour
On Thu, Sep 22, 2005 at 07:05:16PM +0200, Simon 'corecode' Schubert wrote:
> If the main() thread pthread_exit()s, the "process" visible to the
> parent will exit. This is because the kernel doesn't have the notion
> of "threads" and "processes": The pid of the "process" goes away and
> thus all other threads become background processes (threads).
This is not unexpected. The PID has to be kept, just like the PID of a
Process Group must not be reused.
> If the main() thread exit()s, it won't tear down all other threads.
> This is an easy fix: just use RFTHREAD in the rfork_thread() and this
> works as expected. On the other hand if the main thread
> pthread_exit()s (see above) it will kill all other threads as well.
The former sounds good, the latter is a bug. I don't think we need a new
system call, sending a SIGKILL to itself should be enough to implement