Commit b4febc79 authored by Amaury Forgeot d'Arc's avatar Amaury Forgeot d'Arc

Prevent test_queue from leaking: one worker thread was not stopped.

The version in trunk/ is correct; the problem with 3.0 is that
None cannot be used as a marker in a PriorityQueue, because it cannot be compared with ints.
parent 36e6310e
...@@ -144,7 +144,7 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin): ...@@ -144,7 +144,7 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin):
def worker(self, q): def worker(self, q):
while True: while True:
x = q.get() x = q.get()
if x is None: if x < 0:
q.task_done() q.task_done()
return return
with self.cumlock: with self.cumlock:
...@@ -160,7 +160,8 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin): ...@@ -160,7 +160,8 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin):
q.join() q.join()
self.assertEquals(self.cum, sum(range(100)), self.assertEquals(self.cum, sum(range(100)),
"q.join() did not block until all tasks were done") "q.join() did not block until all tasks were done")
q.put(None) # instruct the threads to close for i in (0,1):
q.put(-1) # instruct the threads to close
q.join() # verify that you can join twice q.join() # verify that you can join twice
def test_queue_task_done(self): def test_queue_task_done(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment