On Thu, 24 Aug 2000, Linus Torvalds wrote:
>Now, the problem is that the thread group kill thing for true POSIX
>threads signal behaviour probably has to do some strange magic to get the
>pthreads signal semantics right. I don't even know the exact details here,
>so somebody who _really_ knows pthreads needs to look long and hard at
>this (efficiency here may require that we have a circular list of each
>"thread ID group" - ie that we add the proper process pointer list that
>gets updated at fork() and exit() so that we can easily walk every process
>in the process group list).
The patch on http://www.rhdv.cistron.nl/sigqueue.html does something like
this.
It has a linked list with all the threads in the thread group. There is no
thread group ID. The existing kill() system call does the "right thing" when
a signal is sent to a process with a thread group (i.e. send it to the shared
signal queue).
Of course then you need a separate system call to send a signal to an
individual thread, this one I call kill_thread(). This call is used by
pthread_kill().
It needs some more work. It doesn't handle SIGKILL, SIGSTOP, etc. correctly
for instance.
However it is actual tested code, so shoot.
Robert
-- Robert de Vries rhdv@rhdv.cistron.nl - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Thu Aug 31 2000 - 21:00:17 EST