diff --git a/kombu/exceptions.py b/kombu/exceptions.py index a6615748..9bd231fe 100644 --- a/kombu/exceptions.py +++ b/kombu/exceptions.py @@ -39,5 +39,6 @@ class ChannelLimitExceeded(LimitExceeded): """Maximum number of simultaenous channels exceeded.""" pass + class StdChannelError(Exception): pass diff --git a/kombu/utils/eventio.py b/kombu/utils/eventio.py index a23ad666..ba1c529b 100644 --- a/kombu/utils/eventio.py +++ b/kombu/utils/eventio.py @@ -32,7 +32,8 @@ class _kqueue(object): flags=flags)], 0) def poll(self, timeout): - kevents = self._kqueue.control(None, 1000, timeout / 1000.0) + kevents = self._kqueue.control(None, 1000, + timeout and timeout / 1000.0 or timeout) events = {} for kevent in kevents: fd = kevent.ident @@ -72,14 +73,13 @@ class _select(object): return events.items() if is_eventlet(select): - # Eventlet ships with a monkey patched version of select.select - # we can use. + # use Eventlet's non-blocking version of select.select poll = _select elif hasattr(select, "epoll"): # Py2.6+ Linux poll = select.epoll elif hasattr(select, "kqueue"): # Py2.6+ on BSD / Darwin - poll = select.poll + poll = _kqueue else: poll = _select