• O
    kill tracehook_notify_death() · 45cdf5cc
    Oleg Nesterov 提交于
    Kill tracehook_notify_death(), reimplement the logic in its caller,
    exit_notify().
    
    Also, change the exec_id's check to use thread_group_leader() instead
    of task_detached(), this is more clear. This logic only applies to
    the exiting leader, a sub-thread must never change its exit_signal.
    
    Note: when the traced group leader exits the exit_signal-or-SIGCHLD
    logic looks really strange:
    
    	- we notify the tracer even if !thread_group_empty() but
    	   do_wait(WEXITED) can't work until all threads exit
    
    	- if the tracer is real_parent, it is not clear why can't
    	  we use ->exit_signal event if !thread_group_empty()
    
    -v2: do not try to fix the 2nd oddity to avoid the subtle behavior
         change mixed with reorganization, suggested by Tejun.
    Signed-off-by: NOleg Nesterov <oleg@redhat.com>
    Reviewed-by: NTejun Heo <tj@kernel.org>
    45cdf5cc
exit.c 46.9 KB