• Roland McGrath's avatar
    [PATCH] Call exit_itimers from do_exit, not __exit_signal · 25f407f0
    Roland McGrath authored
    When I originally moved exit_itimers into __exit_signal, that was the only
    place where we could reliably know it was the last thread in the group
    dying, without races.  Since then we've gotten the signal_struct.live
    counter, and do_exit can reliably do group-wide cleanup work.
    
    This patch moves the call to do_exit, where it's made without locks.  This
    avoids the deadlock issues that the old __exit_signal code's comment talks
    about, and the one that Oleg found recently with process CPU timers.
    
    [ This replaces e03d13e9, which is why
      it was just reverted. ]
    Signed-off-by: default avatarRoland McGrath <roland@redhat.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    25f407f0
signal.c 69 KB