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