Don't decrement below zero. And add more tests.

This commit is contained in:
Raymond Hettinger 2006-03-25 12:15:04 +00:00
parent ccc7bb4ef2
commit c4e94b90a8
2 changed files with 19 additions and 4 deletions

View file

@ -56,11 +56,12 @@ class Queue:
"""
self.all_tasks_done.acquire()
try:
self.unfinished_tasks = unfinished = self.unfinished_tasks - 1
unfinished = self.unfinished_tasks - 1
if unfinished <= 0:
if unfinished < 0:
raise ValueError('task_done() called too many times')
self.all_tasks_done.notifyAll()
self.unfinished_tasks = unfinished
finally:
self.all_tasks_done.release()