Re: Fix signalfd interaction with thread-private signals

Benjamin Herrenschmidt
2007-06-22T11:42:07Z

> OK. But in that case I think we should go further, and make signalfd
> "per process", not "per thread", see
>
> http://marc.info/?l=linux-kernel&m=118241815219430
>
> Every thread gets its own local signals plus shared ones.
>
> (I promise, this is the last piece of spam from me on this topic, but
> please-please-please nack this patch explicitly if you don't like it :)

No, I think your patch do make sense.

That is, it -does- make sense to be able to create a signal singalfd in
a process and have N threads reading from it and getting either shared
signals or their local private signals.

I just don't like the actual implementation of it by changing the task
pointer on the fly...

My main issue is a matter of consistency of the signalfd API as a
whole... the whole bloody thing is instanciated & attached to a thread
in the first place. Maybe we should change that and say that one
instanciates a signalfd on a thread group... that is, it always gets
attached to the leader.

It might well be that signalfd's concept of context is wrong in the
first place and it should be attached to processes rather than threads
and that made more explicit in the first place... but that leaves the
door open to what a write() API should be ...

Ben.