diff --git a/lib/workerpool.py b/lib/workerpool.py index 33ef9328aff9bb30cc71d2ff3c6a889982fcfe5f..8127329467897fecc45a60f9cc904037a520c777 100644 --- a/lib/workerpool.py +++ b/lib/workerpool.py @@ -78,9 +78,8 @@ class BaseWorker(threading.Thread, object): """ pool = self.pool - assert self._current_task is None - while True: + assert self._current_task is None try: # Wait on lock to be told either to terminate or to do a task pool._lock.acquire() @@ -97,7 +96,11 @@ class BaseWorker(threading.Thread, object): self._current_task = task + # No longer needed, dispose of reference + del task + assert self._HasRunningTaskUnlocked() + finally: pool._lock.release()