Switched to using constants for the very very tiny speed boost.

This commit is contained in:
Ryan Williams
2009-08-31 20:26:56 -07:00
parent 3f798db29c
commit 8701415945
6 changed files with 35 additions and 35 deletions

View File

@@ -150,9 +150,9 @@ def trampoline(fd, read=None, write=None, timeout=None, timeout_exc=TimeoutError
t = hub.schedule_call_global(timeout, current.throw, timeout_exc)
try:
if read:
listener = hub.add("read", fileno, cb)
listener = hub.add(hub.READ, fileno, cb)
if write:
listener = hub.add("write", fileno, cb)
listener = hub.add(hub.WRITE, fileno, cb)
try:
return hub.switch()
finally:
@@ -206,9 +206,9 @@ def select(read_list, write_list, error_list, timeout=None):
try:
for k, v in ds.iteritems():
if v.get('read'):
hub.add('read', k, on_read)
hub.add(hub.READ, k, on_read)
if v.get('write'):
hub.add_writer('write', k, on_write)
hub.add(hub.WRITE, k, on_write)
descriptors.append(k)
try:
return hub.switch()

View File

@@ -25,9 +25,12 @@ import time
from eventlet.support import greenlets as greenlet
from eventlet.timer import Timer, LocalTimer
READ="read"
WRITE="write"
class FdListener(object):
def __init__(self, evtype, fileno, cb):
assert (evtype == 'read' or evtype == 'write')
assert (evtype is READ or evtype is WRITE)
self.evtype = evtype
self.fileno = fileno
self.cb = cb
@@ -54,9 +57,12 @@ class BaseHub(object):
specific to a particular underlying event architecture. """
SYSTEM_EXCEPTIONS = (KeyboardInterrupt, SystemExit)
READ = READ
WRITE = WRITE
def __init__(self, clock=time.time):
self.listeners = {'read':{}, 'write':{}}
self.listeners = {READ:{}, WRITE:{}}
self.closed_fds = []
self.clock = clock
@@ -78,7 +84,7 @@ class BaseHub(object):
def add(self, evtype, fileno, cb):
""" Signals an intent to or write a particular file descriptor.
The *evtype* argument is either the string 'read' or the string 'write'.
The *evtype* argument is either the constant READ or WRITE.
The *fileno* argument is the file number of the file of interest.
@@ -106,8 +112,8 @@ class BaseHub(object):
def remove_descriptor(self, fileno):
""" Completely remove all listeners for this fileno."""
self.listeners['read'].pop(fileno, None)
self.listeners['write'].pop(fileno, None)
self.listeners[READ].pop(fileno, None)
self.listeners[WRITE].pop(fileno, None)
def stop(self):
self.abort()
@@ -304,10 +310,10 @@ class BaseHub(object):
# for debugging:
def get_readers(self):
return self.listeners['read']
return self.listeners[READ]
def get_writers(self):
return self.listeners['write']
return self.listeners[WRITE]
def get_timers_count(hub):
return max(len(x) for x in [hub.timers, hub.next_timers])

View File

@@ -24,7 +24,7 @@ import traceback
import event
from eventlet import api
from eventlet.hubs.hub import BaseHub, FdListener
from eventlet.hubs.hub import BaseHub, FdListener, READ, WRITE
class event_wrapper(object):
@@ -129,9 +129,9 @@ class Hub(BaseHub):
running = property(_getrunning, _setrunning)
def add(self, evtype, fileno, cb):
if evtype == 'read':
if evtype is READ:
evt = event.read(fileno, cb, fileno)
elif evtype == 'write':
elif evtype is WRITE:
evt = event.write(fileno, cb, fileno)
listener = FdListener(evtype, fileno, evt)
@@ -179,12 +179,6 @@ class Hub(BaseHub):
self.events_to_add.append(wrapper)
return wrapper
def get_readers(self):
return self.listeners['read']
def get_writers(self):
return self.listeners['write']
def _version_info(self):
baseversion = event.__version__
return baseversion

View File

@@ -26,13 +26,13 @@ import errno
from time import sleep
import time
from eventlet.hubs import hub
from eventlet.hubs.hub import BaseHub, READ, WRITE
EXC_MASK = select.POLLERR | select.POLLHUP
READ_MASK = select.POLLIN
WRITE_MASK = select.POLLOUT
class Hub(hub.BaseHub):
class Hub(BaseHub):
def __init__(self, clock=time.time):
super(Hub, self).__init__(clock)
self.poll = select.poll()
@@ -52,9 +52,9 @@ class Hub(hub.BaseHub):
def register(self, fileno):
mask = 0
if self.listeners['read'].get(fileno):
if self.listeners[READ].get(fileno):
mask |= READ_MASK
if self.listeners['write'].get(fileno):
if self.listeners[WRITE].get(fileno):
mask |= WRITE_MASK
if mask:
self.poll.register(fileno, mask)
@@ -72,8 +72,8 @@ class Hub(hub.BaseHub):
pass
def wait(self, seconds=None):
readers = self.listeners['read']
writers = self.listeners['write']
readers = self.listeners[READ]
writers = self.listeners[WRITE]
if not readers and not writers:
if seconds:

View File

@@ -23,9 +23,9 @@ import select
import errno
import time
from eventlet.hubs import hub
from eventlet.hubs.hub import BaseHub, READ, WRITE
class Hub(hub.BaseHub):
class Hub(BaseHub):
def _remove_closed_fds(self):
""" Iterate through fds that have had their socket objects recently closed,
removing the ones that are actually closed per the operating system.
@@ -38,8 +38,8 @@ class Hub(hub.BaseHub):
self.remove_descriptor(fd)
def wait(self, seconds=None):
readers = self.listeners['read']
writers = self.listeners['write']
readers = self.listeners[READ]
writers = self.listeners[WRITE]
if not readers and not writers:
if seconds:
time.sleep(seconds)

View File

@@ -23,7 +23,7 @@ import sys
import threading
from twisted.internet.base import DelayedCall as TwistedDelayedCall
from eventlet import api
from eventlet.hubs import hub
from eventlet.hubs.hub import FdListener, READ, WRITE
class DelayedCall(TwistedDelayedCall):
@@ -74,11 +74,11 @@ class socket_rwdescriptor(hub.FdListener):
disconnected = False
def doRead(self):
if self.evtype == 'read':
if self.evtype is READ:
self.cb(self)
def doWrite(self):
if self.evtype == 'write':
if self.evtype == WRITE:
self.cb(self)
def connectionLost(self, reason):
@@ -130,9 +130,9 @@ class BaseTwistedHub(object):
def add(self, evtype, fileno, cb):
from twisted.internet import reactor
descriptor = socket_rwdescriptor(evtype, fileno, cb)
if evtype == 'read':
if evtype is READ:
reactor.addReader(descriptor)
if evtype == 'write':
if evtype is WRITE:
reactor.addWriter(descriptor)
return descriptor