From 6f661db4a980c33e31d6414d83673322d154a977 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Fri, 4 Dec 2009 17:12:13 -0800 Subject: [PATCH] Tweaked trampoline_timeout because Windows assumes that sockets that are not in the middle of accepting are invalid. --- eventlet/hubs/selects.py | 8 ++++---- tests/api_test.py | 14 ++++++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/eventlet/hubs/selects.py b/eventlet/hubs/selects.py index 3dc0260..0b4f064 100644 --- a/eventlet/hubs/selects.py +++ b/eventlet/hubs/selects.py @@ -43,10 +43,10 @@ class Hub(BaseHub): raise for fileno in er: - for r in readers.get(fileno): - r(fileno) - for w in writers.get(fileno): - w(fileno) + for reader in readers.get(fileno, ()): + reader(fileno) + for writer in writers.get(fileno, ()): + writer(fileno) for listeners, events in ((readers, r), (writers, w)): for fileno in events: diff --git a/tests/api_test.py b/tests/api_test.py index a57ceaa..12f058b 100644 --- a/tests/api_test.py +++ b/tests/api_test.py @@ -120,18 +120,24 @@ class TestApi(TestCase): check_hub() def test_001_trampoline_timeout(self): - server = api.tcp_listener(('0.0.0.0', 0)) - bound_port = server.getsockname()[1] - + from eventlet import coros + server_sock = api.tcp_listener(('127.0.0.1', 0)) + bound_port = server_sock.getsockname()[1] + def server(sock): + client, addr = sock.accept() + api.sleep(0.1) + server_evt = coros.execute(server, server_sock) + api.sleep(0) try: desc = greenio.GreenSocket(util.tcp_socket()) desc.connect(('127.0.0.1', bound_port)) - api.trampoline(desc, read=True, write=False, timeout=0.1) + api.trampoline(desc, read=True, write=False, timeout=0.001) except api.TimeoutError: pass # test passed else: assert False, "Didn't timeout" + server_evt.wait() check_hub() def test_timeout_cancel(self):