[Twisted-Python] epoll 2.4 kernel
Not sure if this is the right mailing list for this.... epoll should *not* be used on 2.4 kernels... I have 2.4 kernel running on a 32-bit x86 machine and another 2.4 kernel running on 64-bit x64 and I'm having an issue with twisted (via buildbot). I can import epoll from select on the 64-bit machine (it *should* fail but doesn't) and this later causes twisted to fail...
from select import epoll epoll(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> IOError: [Errno 38] Function not implemented
On the 32-bit machine, however, importing epoll is properly failing...
from select import epoll Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: cannot import name epoll
twisted/internet/default.py is hitting this same problem. It's incorrectly picking epoll when it shouldn’t because import epoll is working when it shouldn't. I 'fixed' the problem on my machine by adding a check method in epollreactor.py which does this... def check(): try: epoll(1) except IOError: return False return True and I import and call the check method in default.py. An alternate fix can be... in twisted/internet/default.py try: if platform.isLinux(): try: from select import epoll epoll(1) from twisted.internet.epollreactor import install except (IOError, ImportError): from twisted.internet.pollreactor import install Any insight would be good. I had to compile my own Python 2.7.8 on these old computers...maybe python is incorrectly detecting epoll in the build process? Thanks in advance, Reuben
participants (3)
-
Glyph
-
Itamar Turner-Trauring
-
Reuben Hawkins