• Ingo Molnar's avatar
    [PATCH] sys_exit() threading improvements, BK-curr · 2c66151c
    Ingo Molnar authored
    This implements the 'keep the initial thread around until every thread
    in the group exits' concept in a different, less intrusive way, along
    your suggestions.  There is no exit_done completion handling anymore,
    freeing of the task is still done by wait4().  This has the following
    side-effect: detached threads/processes can only be started within a
    thread group, not in a standalone way.
    
    (This also fixes the bugs introduced by the ->exit_done code, which made
    it possible for a zombie task to be reactivated.)
    
    I've introduced the p->group_leader pointer, which can/will be used for
    other purposes in the future as well - since from now on the thread
    group leader is always existent.  Right now it's used to notify the
    parent of the thread group leader from the last non-leader thread that
    exits [if the thread group leader is a zombie already].
    2c66151c
fork.c 23.9 KB