Mike Klaas added the comment: This problem has also afflicted us.
Attached is a patch which adds closerange(fd_low, fd_high) to the posix (and consequently os) module, and modifies subprocess to use it. Patch is against trunk but should work for 2.5maint. I don't really think that this is useful enough to add to the public api, but it results in a huge performance benefit for subprocess: [python-trunk]$ ./python -m timeit -s 'import python_close' 'python_close.go(100000)' 10 loops, best of 3: 358 msec per loop [python-trunk]$ ./python -m timeit -s 'import os' 'os.closerange(4, 100000)' 10 loops, best of 3: 20.7 msec per loop [python-trunk]$ ./python -m timeit -s 'import python_close' 'python_close.go(300000)' 10 loops, best of 3: 1.05 sec per loop [python-trunk]$ ./python -m timeit -s 'import os' 'os.closerange(4, 300000)'10 loops, best of 3: 63 msec per loop [python-trunk]$ cat python_close.py import os, sys def go(N): for i in xrange(4, N): try: os.close(i) except: pass ---------- nosy: +klaas _____________________________________ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1663329> _____________________________________
posix_closerange.patch
Description: Binary data
_______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com