Shared Signal Queue Patch [Was Re: SCO: "thread creation is about a thousand times faster than on native Linux"]

From: Robert H. de Vries (
Date: Sat Aug 26 2000 - 06:14:19 EST

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 does something like
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
It needs some more work. It doesn't handle SIGKILL, SIGSTOP, etc. correctly
for instance.

However it is actual tested code, so shoot.


Robert de Vries
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

This archive was generated by hypermail 2b29 : Thu Aug 31 2000 - 21:00:17 EST