From 762ba917a0e1aff2cd626cc2f07683d61ccaa9fe Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Fri, 15 Jan 2010 15:22:55 -0800 Subject: [PATCH] Removed deprecation warnings from tpool_test.py, more cleanup in killall and setup. --- eventlet/hubs/hub.py | 4 ++-- eventlet/tpool.py | 5 +++-- tests/tpool_test.py | 27 ++++++++++++++------------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/eventlet/hubs/hub.py b/eventlet/hubs/hub.py index 7b9054d..ba48cdb 100644 --- a/eventlet/hubs/hub.py +++ b/eventlet/hubs/hub.py @@ -294,10 +294,10 @@ class BaseHub(object): # for debugging: def get_readers(self): - return self.listeners[READ] + return self.listeners[READ].values() def get_writers(self): - return self.listeners[WRITE] + return self.listeners[WRITE].values() def get_timers_count(hub): return max(len(x) for x in [hub.timers, hub.next_timers]) diff --git a/eventlet/tpool.py b/eventlet/tpool.py index cb9938e..5dcb387 100644 --- a/eventlet/tpool.py +++ b/eventlet/tpool.py @@ -50,7 +50,7 @@ def tpool_trampoline(): e.send(rv) rv = None except Empty: - pass + pass def esend(meth,*args, **kwargs): global _reqq, _rspq @@ -222,6 +222,7 @@ def setup(): _threads[i].start() _coro = greenthread.spawn_n(tpool_trampoline) + api.sleep(0) # fix a race condition when calling killall immediately def killall(): global _setup_already, _reqq, _rspq, _rfile, _wfile @@ -231,9 +232,9 @@ def killall(): _reqq.put(None) for thr in _threads.values(): thr.join() + _threads.clear() if _coro: api.kill(_coro) - greenthread.sleep(0.01) _rfile.close() _wfile.close() _rfile = None diff --git a/tests/tpool_test.py b/tests/tpool_test.py index 51ab8b7..ef55acd 100644 --- a/tests/tpool_test.py +++ b/tests/tpool_test.py @@ -19,13 +19,15 @@ import time import re from tests import skipped, skip_with_pyevent, LimitedTestCase, main -from eventlet import coros, api, tpool, debug +from eventlet import api, tpool, debug +import eventlet one = 1 two = 2 three = 3 class TestTpool(LimitedTestCase): + TEST_TIMEOUT=3 def setUp(self): tpool.setup() debug.hub_exceptions(True) @@ -56,12 +58,12 @@ class TestTpool(LimitedTestCase): self.assertEquals(token, rv) api.sleep(random.random()/200.0) - pool = coros.CoroutinePool(max_size=10) - waiters = [] + pile = eventlet.GreenPile(10) for i in xrange(10): - waiters.append(pool.execute(sender_loop,i)) - for waiter in waiters: - waiter.wait() + pile.spawn(sender_loop,i) + results = list(pile) + self.assertEquals(len(results), 10) + @skip_with_pyevent def test_wrap_tuple(self): @@ -169,13 +171,12 @@ class TestTpool(LimitedTestCase): from tests import tpool_test prox = tpool.Proxy(tpool_test) - pool = coros.CoroutinePool(max_size=4) - waiters = [] - waiters.append(pool.execute(lambda: self.assertEquals(prox.one, 1))) - waiters.append(pool.execute(lambda: self.assertEquals(prox.two, 2))) - waiters.append(pool.execute(lambda: self.assertEquals(prox.three, 3))) - for waiter in waiters: - waiter.wait() + pile = eventlet.GreenPile(4) + pile.spawn(lambda: self.assertEquals(prox.one, 1)) + pile.spawn(lambda: self.assertEquals(prox.two, 2)) + pile.spawn(lambda: self.assertEquals(prox.three, 3)) + results = list(pile) + self.assertEquals(len(results), 3) @skip_with_pyevent def test_timeout(self):