Removed unnecessary __call__ from the hub, now everything hits cb directly.
This commit is contained in:
@@ -16,13 +16,13 @@ class FdListener(object):
|
||||
self.evtype = evtype
|
||||
self.fileno = fileno
|
||||
self.cb = cb
|
||||
def __call__(self, *args, **kw):
|
||||
return self.cb(*args, **kw)
|
||||
def __repr__(self):
|
||||
return "%s(%r, %r, %r)" % (type(self).__name__, self.evtype, self.fileno, self.cb)
|
||||
__str__ = __repr__
|
||||
|
||||
|
||||
noop = FdListener(READ, 0, lambda x: None)
|
||||
|
||||
# in debug mode, track the call site that created the listener
|
||||
class DebugListener(FdListener):
|
||||
def __init__(self, evtype, fileno, cb):
|
||||
|
@@ -6,14 +6,12 @@ time = patcher.original('time')
|
||||
sleep = time.sleep
|
||||
|
||||
from eventlet.support import get_errno, clear_sys_exc_info
|
||||
from eventlet.hubs.hub import BaseHub, READ, WRITE
|
||||
from eventlet.hubs.hub import BaseHub, READ, WRITE, noop
|
||||
|
||||
EXC_MASK = select.POLLERR | select.POLLHUP
|
||||
READ_MASK = select.POLLIN | select.POLLPRI
|
||||
WRITE_MASK = select.POLLOUT
|
||||
|
||||
noop = lambda x: None
|
||||
|
||||
class Hub(BaseHub):
|
||||
WAIT_MULTIPLIER=1000.0 # poll.poll's timeout is measured in milliseconds
|
||||
|
||||
@@ -52,9 +50,7 @@ class Hub(BaseHub):
|
||||
else:
|
||||
try:
|
||||
self.poll.unregister(fileno)
|
||||
except KeyError:
|
||||
pass
|
||||
except (IOError, OSError):
|
||||
except (KeyError, IOError, OSError):
|
||||
# raised if we try to remove a fileno that was
|
||||
# already removed/invalid
|
||||
pass
|
||||
@@ -63,9 +59,7 @@ class Hub(BaseHub):
|
||||
super(Hub, self).remove_descriptor(fileno)
|
||||
try:
|
||||
self.poll.unregister(fileno)
|
||||
except (KeyError, ValueError):
|
||||
pass
|
||||
except (IOError, OSError):
|
||||
except (KeyError, ValueError, IOError, OSError):
|
||||
# raised if we try to remove a fileno that was
|
||||
# already removed/invalid
|
||||
pass
|
||||
@@ -89,15 +83,15 @@ class Hub(BaseHub):
|
||||
for fileno, event in presult:
|
||||
try:
|
||||
if event & READ_MASK:
|
||||
readers.get(fileno, noop)(fileno)
|
||||
readers.get(fileno, noop).cb(fileno)
|
||||
if event & WRITE_MASK:
|
||||
writers.get(fileno, noop)(fileno)
|
||||
writers.get(fileno, noop).cb(fileno)
|
||||
if event & select.POLLNVAL:
|
||||
self.remove_descriptor(fileno)
|
||||
continue
|
||||
if event & EXC_MASK:
|
||||
readers.get(fileno, noop)(fileno)
|
||||
writers.get(fileno, noop)(fileno)
|
||||
readers.get(fileno, noop).cb(fileno)
|
||||
writers.get(fileno, noop).cb(fileno)
|
||||
except SYSTEM_EXCEPTIONS:
|
||||
raise
|
||||
except:
|
||||
|
@@ -5,15 +5,13 @@ from eventlet.support import get_errno, clear_sys_exc_info
|
||||
select = patcher.original('select')
|
||||
time = patcher.original('time')
|
||||
|
||||
from eventlet.hubs.hub import BaseHub, READ, WRITE
|
||||
from eventlet.hubs.hub import BaseHub, READ, WRITE, noop
|
||||
|
||||
try:
|
||||
BAD_SOCK = set((errno.EBADF, errno.WSAENOTSOCK))
|
||||
except AttributeError:
|
||||
BAD_SOCK = set((errno.EBADF,))
|
||||
|
||||
noop = lambda x: None
|
||||
|
||||
class Hub(BaseHub):
|
||||
def _remove_bad_fds(self):
|
||||
""" Iterate through fds, removing the ones that are bad per the
|
||||
@@ -45,13 +43,13 @@ class Hub(BaseHub):
|
||||
raise
|
||||
|
||||
for fileno in er:
|
||||
readers.get(fileno, noop)(fileno)
|
||||
writers.get(fileno, noop)(fileno)
|
||||
readers.get(fileno, noop).cb(fileno)
|
||||
writers.get(fileno, noop).cb(fileno)
|
||||
|
||||
for listeners, events in ((readers, r), (writers, w)):
|
||||
for fileno in events:
|
||||
try:
|
||||
listeners.get(fileno, noop)(fileno)
|
||||
listeners.get(fileno, noop).cb(fileno)
|
||||
except self.SYSTEM_EXCEPTIONS:
|
||||
raise
|
||||
except:
|
||||
|
Reference in New Issue
Block a user