Re: Fix signalfd interaction with thread-private signals

Oleg Nesterov
2007-06-19T19:59:41Z

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.