test__pool: fix PoolBasicTests.text_execute_async
This commit is contained in:
@@ -155,21 +155,27 @@ class PoolBasicTests(LimitedTestCase):
|
|||||||
|
|
||||||
def test_execute_async(self):
|
def test_execute_async(self):
|
||||||
p = self.klass(max_size=2)
|
p = self.klass(max_size=2)
|
||||||
|
self.assertEqual(p.free(), 2)
|
||||||
r = []
|
r = []
|
||||||
def foo(a):
|
def foo(a):
|
||||||
r.append(a)
|
r.append(a)
|
||||||
evt = p.execute(foo, 1)
|
evt = p.execute(foo, 1)
|
||||||
|
self.assertEqual(p.free(), 1)
|
||||||
evt.wait()
|
evt.wait()
|
||||||
self.assertEqual(r, [1])
|
self.assertEqual(r, [1])
|
||||||
|
api.sleep(0)
|
||||||
|
self.assertEqual(p.free(), 2)
|
||||||
|
|
||||||
#Once the pool is exhausted, calling an execute forces a yield.
|
#Once the pool is exhausted, calling an execute forces a yield.
|
||||||
|
|
||||||
p.execute_async(foo, 2)
|
p.execute_async(foo, 2)
|
||||||
|
self.assertEqual(1, p.free())
|
||||||
self.assertEqual(r, [1])
|
self.assertEqual(r, [1])
|
||||||
self.assertEqual(0, p.free())
|
|
||||||
p.execute_async(foo, 3)
|
p.execute_async(foo, 3)
|
||||||
self.assertEqual(r, [1, 2])
|
|
||||||
self.assertEqual(0, p.free())
|
self.assertEqual(0, p.free())
|
||||||
|
self.assertEqual(r, [1])
|
||||||
|
|
||||||
p.execute_async(foo, 4)
|
p.execute_async(foo, 4)
|
||||||
self.assertEqual(r, [1,2,3])
|
self.assertEqual(r, [1,2,3])
|
||||||
api.sleep(0)
|
api.sleep(0)
|
||||||
|
Reference in New Issue
Block a user