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.
This commit is contained in:
Amaury Forgeot d'Arc 2008-04-01 21:23:34 +00:00
parent 36e6310e39
commit b4febc7933
1 changed files with 3 additions and 2 deletions

View File

@ -144,7 +144,7 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin):
def worker(self, q):
while True:
x = q.get()
if x is None:
if x < 0:
q.task_done()
return
with self.cumlock:
@ -160,7 +160,8 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin):
q.join()
self.assertEquals(self.cum, sum(range(100)),
"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
def test_queue_task_done(self):