Merged in nginx stuff cause I guess there was a conflict.

This commit is contained in:
rdw
2008-03-18 12:31:40 -05:00
5 changed files with 20 additions and 20 deletions

View File

@@ -32,8 +32,9 @@ def check_hub():
api.sleep(0)
api.sleep(0)
hub = api.get_hub()
for dct in hub.readers, hub.writers, hub.excs:
assert not dct, repr(dct)
for nm in 'readers', 'writers', 'excs':
dct = getattr(hub, nm)
assert not dct, "hub.%s not empty: %s" % (nm, dct)
# Stop the runloop
api.get_hub().abort()
api.sleep(0)
@@ -74,12 +75,11 @@ class TestApi(tests.TestCase):
check_hub()
def test_server(self):
connected = []
server = api.tcp_listener(('0.0.0.0', 0))
bound_port = server.getsockname()[1]
connected = []
def accept_twice((conn, addr)):
print 'connected'
connected.append(True)
conn.close()
if len(connected) == 2:

View File

@@ -33,7 +33,7 @@ import greenlet
from eventlet import greenlib
from eventlet.timer import Timer
class Hub(object):
class BaseHub(object):
SYSTEM_EXCEPTIONS = (KeyboardInterrupt, SystemExit)
def __init__(self, clock=time.time):

View File

@@ -34,6 +34,9 @@ from eventlet import hub
import greenlet
# XXX for debugging only
#raise ImportError()
try:
# use rel if it's available
import rel
@@ -45,7 +48,7 @@ except ImportError:
import event
class Hub(hub.Hub):
class Hub(hub.BaseHub):
SYSTEM_EXCEPTIONS = (KeyboardInterrupt, SystemExit)
def __init__(self, clock=time.time):
@@ -68,36 +71,33 @@ class Hub(hub.Hub):
evt = event.write(fileno, write, fileno)
evt.add()
self.writers[fileno] = evt, write
if exc:
self.excs[fileno] = exc
def remove_descriptor(self, fileno):
for queue in (self.readers, self.writers):
tpl = queue.pop(fileno, None)
if tpl is not None:
tpl[0].delete()
def exc_descriptor(self, fileno):
for queue in (self.readers, self.writers):
tpl = queue.pop(fileno, None)
if tpl is not None:
evt, cb = tpl
evt.delete()
cb(fileno)
self.excs.pop(fileno, None)
def signal_received(self, signal):
self.interrupted = True
def wait(self, seconds=None):
if self.interrupted:
raise KeyboardInterrupt()
timer = event.timeout(seconds, lambda: None)
timer.add()
status = event.loop()
if status == -1:
raise RuntimeError("does this ever happen?")
timer.delete()
if self.interrupted:
self.interrupted = False
raise KeyboardInterrupt()
def add_timer(self, timer):
event.timeout(timer.seconds, timer).add()

View File

@@ -37,7 +37,7 @@ EXC_MASK = select.POLLERR | select.POLLHUP | select.POLLNVAL
READ_MASK = select.POLLIN
WRITE_MASK = select.POLLOUT
class Hub(hub.Hub):
class Hub(hub.BaseHub):
def __init__(self, clock=time.time):
super(Hub, self).__init__(clock)
self.poll = select.poll()

View File

@@ -31,7 +31,7 @@ from eventlet import hub
import greenlet
class Hub(hub.Hub):
class Hub(hub.BaseHub):
def wait(self, seconds=None):
readers = self.readers
writers = self.writers