[lkml]   [2004]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [Q] why switch_exec_pids() changes thread group leader pid?
On Mon, Sep 20, 2004 at 03:29:47PM +0400, Kirill Korotaev wrote:
>>> I've been looking through switch_exec_pids() function and found that it
>>> changes thread group leader PID/TGID. Is it really a good idea to change
>>> pid of the process during it's lifetime? I could understand if it was
>>> happenning in the context of that process, but pid changes everytime a
>>> thread calls do_execve().
>>> As far as I can see, leader doesn't have to do any of detach_pid()'s.
>>> Instead thread should change it's PID/TGID.

William Lee Irwin III wrote:
>> It's only done when a thread that is not a thread group leader
>> execve()'s. This is actually pretty rare and confined to threaded
>> applications, so it should be almost never called.

On Mon, Sep 20, 2004 at 04:07:33PM +0400, Kirill Korotaev wrote:
> Heh, rare doesn't mean correct, yeah? :)

The semantic it implements is that the thread calling execve() kills
all other threads of the process and assumes the identity of the thread
group leader. It should be clear that when the thread were already the
group leader, such as it is for unthreaded processes, one need only
kill the other threads, of which there are none for unthreaded
processes. I'm largely not involved with the implementation of POSIX
threading semantics, so there is some limit regarding the amount of
detail in which I can go on about it without resorting to research.

Ingo Molnar, Roland McGrath, and Ulrich Drepper will likely have more
information if you should care to question so deeply as to ask e.g.
whether this is actually faithful to whatever standard they followed.

-- wli
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 14:06    [W:0.060 / U:3.144 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site