improved the epoll implementation lookup

This commit is contained in:
Tavis Rudd
2010-02-23 22:51:04 -05:00
parent 8e4a3be064
commit 55ee7033db

View File

@@ -1,15 +1,27 @@
from eventlet import patcher
time = patcher.original('time')
try:
# shoot for epoll module first
from epoll import poll as epoll
except ImportError, e:
# if we can't import that, hope we're on 2.6
select = patcher.original('select')
try:
select = patcher.original("select")
if hasattr(select, 'epoll'):
epoll = select.epoll
except AttributeError:
raise ImportError("No epoll on select module")
else:
try:
# http://pypi.python.org/pypi/select26/
from select26 import epoll
except ImportError:
try:
import epoll as _epoll_mod
except ImportError:
raise ImportError(
"No epoll implementation found in select module or PYTHONPATH")
else:
if hasattr(_epoll_mod, 'poll'):
epoll = _epoll_mod.poll
else:
raise ImportError(
"You have an old, buggy epoll module in PYTHONPATH."
" Install http://pypi.python.org/pypi/python-epoll/"
" NOT http://pypi.python.org/pypi/pyepoll/. "
" easy_install pyepoll installs the wrong version.")
from eventlet.hubs.hub import BaseHub
from eventlet.hubs import poll