Re: Fix signalfd interaction with thread-private signals

From: Oleg Nesterov
Date: Tue Jun 19 2007 - 15:59:42 EST


On 06/19, Davide Libenzi wrote:
>
> On Tue, 19 Jun 2007, Oleg Nesterov wrote:
>
> > The commited "Fix signalfd interaction with thread-private signals"
> > (commit caec4e8dc85e0644ec24aeb36285e1ba02da58cc) doesn't implement
> > this.
> >
> > We can do something like
> >
> > int signalfd_dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
> > {
> > if (tsk->tgid == current->tgid)
> > tsk = current;
> >
> > return dequeue_signal(tsk, mask, info);
> > }
> >
> > (still I can't understand why should we change signalfd).
>
> Yes, of course. I was waiting for Ben's patch to go in, before fixing
> signalfd. I did not know if Linus would have acked that.

OK, this means that signalfd becomes "thread group wide". In that case
I'd suggest to also change sys_signalfd(-1),

- ctx->tsk = current;
+ ctx->tsk = current->group_leader;

Oleg.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/