
Itamar Turner-Trauring wrote:
On Mon, 2010-04-12 at 14:23 -0400, Glyph Lefkowitz wrote:
Still, I wouldn't recommend using the subprocess module in a Twisted application, and multiprocessing even less. 'subprocess' uses select(), which means that if you are running processes in a server handling a large number of connections with a reactor that you've selected for that job, you will occasionally notice that '.communicate()' will blow up because your file descriptors are too big to fit into a select() call.
I'm pretty sure Twisted's process.py uses select() in some cases... possibly on import though, which would be less of an issue, I forget.
Yeah, I don't think it's much of an issue. It does do it on import, and then later as a fallback if that import-time check found “broken versions of linux” where “write-only pipe are detected as readable.” This is apparently Linux < 2.6.11. I suppose if someone does find it's an issue for them that it wouldn't be too hard to fix, although perhaps they'd find it easier to simply upgrade their OS... -Andrew.