2002-09-17 02:41:38

by Jamie Lokier

[permalink] [raw]
Subject: Question about CLONE_CLEARTID and thread group leader

Dear Ingo,

CLONE_CLEARTID was created so that a thread can notify its partner
threads that its stack may by freed or reused. It is needed because the
stack isn't free until the exit() system call begins.

One question has been bothering me for a while: what about the thread
group leader's stack? These days, isn't it the case that the group
leader is supposed to be equivalent to the other threads? If so, how
does it exit and release its own stack -- or do we understand that the
group leader, as a one-off exception, has to block signals before exiting?

Thanks,
-- Jamie


2002-09-17 02:58:34

by Ingo Molnar

[permalink] [raw]
Subject: Re: Question about CLONE_CLEARTID and thread group leader


On Tue, 17 Sep 2002, Jamie Lokier wrote:

> One question has been bothering me for a while: what about the thread
> group leader's stack? These days, isn't it the case that the group
> leader is supposed to be equivalent to the other threads? If so, how
> does it exit and release its own stack -- or do we understand that the
> group leader, as a one-off exception, has to block signals before
> exiting?

good question. We might need a new mechanism (new syscall) for a thread to
set its own ->user_tid after it has started up. I'll code it up. The
fastest thread-startup method is still to also have this mechanism
provided by clone() as well - but oviously at exec() time we cannot know
about such issues.

Ingo