Messages in this thread | ![/](/images/icornerl.gif) | | From | Roland McGrath <> | Subject | Re: [PATCH] fix race copy_process() vs de_thread() | Date | Sun, 23 Aug 2009 23:14:20 -0700 (PDT) |
| |
I'm not sure I follow the problem scenario you are citing.
The thread in copy_process() will return -ERESTARTNOINTR after calling cleanup_signal(), which does properly decrement sig->count to return it to the state before the copy_process() call. Then this thread will get to signal handling, dequeue its SIGKILL from zap_other_threads(), and die itself. When it's finally reaped, by itself in exit_notify(), or by de_thread() in the case of a replaced group_leader, the normal __exit_signal() will do that group_exit_task logic.
What part of this sequence fails to occur in your tests?
Thanks, Roland
| ![\](/images/icornerr.gif) |