Форум сайта python.su
14
Зачем в workere? Вызывайте в главном потоке, прямо в обработчике сигнала.
Да, размер меняется и это нехорошо. Итерируйтесь по копии.
Офлайн
0
если сделать копию:
cp = set()
cp |= self.pending
for f in cp:
f.cancel()
File "/usr/local/lib/python3.2/concurrent/futures/_base.py", line 391, in result
raise CancelledError()
concurrent.futures._base.CancelledError
AttributeError: 'list' object has no attribute 'add'
AttributeError: 'list' object has no attribute 'discard'
Офлайн
14
for f in set(self.pending):
if not f.cancelled():
f.cancel()
Офлайн
0
отлично! теперь работает как надо и без ошибок :)
огромное спасибо!
Отредактировано (Фев. 2, 2011 08:12:23)
Офлайн