On 02:50 am, gl...@twistedmatrix.com wrote:

On Feb 18, 2014, at 6:07 PM, exar...@twistedmatrix.com wrote:
On 18 Feb, 07:29 pm, gl...@twistedmatrix.com wrote:

On Feb 15, 2014, at 5:32 PM, exar...@twistedmatrix.com wrote:
On 15 Feb, 07:58 pm, gl...@twistedmatrix.com wrote:

The one thing that confused me was that the sample program appeared to be running the program only once a second, and waiting for it to complete before running it again.

I think it's more like 81 processes once a second and *not* waiting for them to complete before starting over. Notice the lack of yields in key places. I suspect inlineCallbacks has gradually eaten out the part of your brain that recognizes that keyword. ;)

I sort of noted this on the ticket, but I think the idea of using KQueue to address this would be great. Is there a similar thing we might be able to do on Linux to get rid of the dependence on a SIGCHLD handler?

Not that I know of. As far as I know Linux is missing good child process event notification support.

Wait... what about... signalfd?!

Lots of mentions of SIGCHLD here:

<http://linux.die.net/man/2/signalfd>

It's sort of problematic for a library. You have to block the signal for signalfd to work reliably. Now no other code that depends on SIGCHLD can run properly in that process.

We could simply declare that to be the case and go ahead... But based on past experience I'm sure some people would be unhappy with that.

Perhaps it could be an option only turned on by applications that know it's okay for them and that want to avoid the mess of signals?

On the other hand we seem to be dealing with the mess of signals on Linux pretty okay at the moment. Who would opt in to this and why?

Jean-Paul

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to