• O
    has_stopped_jobs: s/task_is_stopped/SIGNAL_STOP_STOPPED/ · 961c4675
    Oleg Nesterov 提交于
    has_stopped_jobs() naively checks task_is_stopped(group_leader). This
    was always wrong even without ptrace, group_leader can be dead. And
    given that ptrace can change the state to TRACED this is wrong even
    in the single-threaded case.
    
    Change the code to check SIGNAL_STOP_STOPPED and simplify the code,
    retval + break/continue doesn't make this trivial code more readable.
    
    We could probably add the usual "|| signal->group_stop_count" check
    but I don't think this makes sense, the task can start the group-stop
    right after the check anyway.
    Signed-off-by: NOleg Nesterov <oleg@redhat.com>
    Acked-by: NTejun Heo <tj@kernel.org>
    961c4675
exit.c 46.5 KB