Messages in this thread | | | Date | Tue, 26 May 2009 00:51:50 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH 1/1] signal: make group kill signal fatal |
| |
On 05/25, Jiri Slaby wrote: > > On 05/25/2009 07:20 PM, Oleg Nesterov wrote: > > On 05/25, Jiri Slaby wrote: > >> If the poll isn't there, it works well. > > > > Hmm. this is strange. Do you mean that if this program does > > sleep(10000) (or something else) instead of poll() above, it > > prints pend != 0 ? > > No, only when there is nothing, i.e. when it directly calls close. It's > consistent with what you wrote. When there is sleep(), it works the same > as the poll case.
Good ;)
> > And. Why do you need fatal_signal_pending() ? It is special, > > should be used by things like wait_event_killable(). > > I need to wait for a device to finish its work in last release, but also > want to allow user to kill the waiting by SIGKILL if he thinks the > device locked up (this is pretty usual for that particular device). If I > use wait_event_killable, I end up with this.
Heh. In this case you have another (long-standing) issue, please note the "if (p->flags & PF_EXITING)" check in wants_signal().
There is no guarantee the signal will wake up the exiting task task. Even SIGKILL, even if you use wait_event_interruptible() instead of _killable.
Oleg.
| |