Dont modify a list as you are traversing it. The result is

implementation dependant although with CPython elements are
unintentionally skipped during iteration.

Basic CPython example:

>>> A = [1,2,3,4,5,6]
>>> for a in A:
...     A.remove(a)
>>> A
[2, 4, 6]
This commit is contained in:
Chuddah 2020-02-16 18:41:14 +00:00
parent 94456ddcd8
commit 85d4e660ef
2 changed files with 5 additions and 8 deletions

View file

@ -147,9 +147,7 @@ class Artwork(object):
def add_worker(self):
for thread in self.threads:
if thread.is_done:
self.threads.remove(thread)
self.threads = [thread for thread in self.threads if not thread.is_done]
if self.queue.qsize() and len(self.threads) < 2: