[Twisted-Python] Win32 select in internet.main
HappyFool pointed out on IRC that the fix for empty read and write lists in select.select on windows is only done for iterate(), not run(). Perhaps the following patch should be used? Index: twisted/internet/main.py =================================================================== RCS file: /cvs/Twisted/twisted/internet/main.py,v retrieving revision 1.42 diff -c -r1.42 main.py *** twisted/internet/main.py 2001/10/30 23:55:39 1.42 --- twisted/internet/main.py 2001/11/18 11:54:58 *************** *** 440,454 **** del writes[writer] if platform.getType() == 'win32': ! """redefine iterate on WinXX to handle wierd error case when passing empty lists to select """ ! def iterate(): ! for delayed in delayeds: ! delayed.runUntilCurrent() ! if (not reads) and (not writes): ! pass else: ! doSelect(0) class _Win32Waker(styles.Ephemeral): """I am a workaround for the lack of pipes on win32. --- 440,455 ---- del writes[writer] if platform.getType() == 'win32': ! """redefine select on WinXX to handle wierd error case when passing empty lists to select """ ! def _select(r, w, e, timeout=None, _realselect=select.select): ! if (not r) and (not w): ! return [], [], [] else: ! return _realselect(r, w, e, timeout) ! ! select.select = _select ! class _Win32Waker(styles.Ephemeral): """I am a workaround for the lack of pipes on win32.
participants (1)
-
Itamar Shtull-Trauring