Re: while_each_thread() under rcu_read_lock() is broken?

From: Oleg Nesterov
Date: Thu Jun 24 2010 - 18:02:21 EST

On 06/24, Chris Friesen wrote:
> On 06/24/2010 12:07 PM, Paul E. McKenney wrote:
> > 3. The thread-group leader might do pthread_exit(), removing itself
> > from the thread group -- and might do so while the hapless reader
> > is referencing that thread.
> >
> > But isn't this prohibited? Or is it really legal to do a
> > pthread_create() to create a new thread and then have the
> > parent thread call pthread_exit()? Not something I would
> > consider trying in my own code! Well, I might, just to
> > be perverse, but... ;-)
> I believe SUS allows the main thread to explicitly call pthread_exit(),
> leaving the other threads to run. If the main() routine just returns
> then it implicitly calls exit().


But, to clarify, if the main thread does pthread_exit() (sys_exit,
actually), it won't be removed from the group. It will be zombie
until all other threads exit.


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