Messages in this thread |  | | | Date | Tue, 19 Apr 2011 20:17:33 +0200 | | From | Oleg Nesterov <> | | Subject | Re: [path][rfc] add PR_DETACH prctl command [3/3] |
| |
On 04/19, Stas Sergeev wrote: > > 19.04.2011 21:20, Oleg Nesterov wrote: > >>>> do_signal_parent() must not return DEATH_REAP (this means that >>>> leader->exit_signal becomes -1), but this can happen and this is bug. >>>> >>> Could you please clarify this a bit: according to the comments >>> in signal.c: >>> --- >>> * We are exiting and our parent doesn't care. POSIX.1 >>> * defines special semantics for setting SIGCHLD to SIG_IGN >>> * or setting the SA_NOCLDWAIT flag: we should be reaped >>> * automatically and not left for our parent's wait4 call. >>> --- >>> That's how I understand it: if DEATH_REAP is returned, the >>> parent ignores SIGCHILD, and in this case I am not allowing >>> it to read the detach code with wait(). What is the bug? >> Indeed. But, once again, that is why do_notify_parent() expects the dead >> tsk! Please note that if it returns DEATH_REAP it sets ->exit_signal = -1. >> And this is _only_ allowed if the leader is already dead and we are going >> to reap it. > Ah, so, by saying "do_signal_parent() must not return DEATH_REAP (this means that > leader->exit_signal becomes -1)", you actually meant > "do_signal_parent(), when returning DEATH_REAP, must not > set ->exit_signal = -1,
Yes.
> because only do_notify_parent() > can do that"?
because we can only do this if we are going to reap the task
> If so - will fix, thanks.
Stas, please do not trim CC. I am very glad Alan looked at this patch, I hope he will participate. Better yet, add Linus too as I already asked ;)
Oleg.
|  |