Если вы используете поток обработчика, надеюсь, что-то пошло не так. Я мог видеть эти строки в исходном коде следующего метода MessageQueue. Посмотрите, это может помочь вам понять.
** Message next () {// Возвращаем сюда, если цикл обработки сообщений уже завершен и был удален. // Это может произойти, если приложение пытается перезапустить петлитель после завершения //, что не поддерживается. **
Вы не предоставили нам никакого кода, но вот образец, который делает нечто похожее на то, что вы описываете:
import threading
import subprocess
class MyClass(threading.Thread):
def __init__(self):
self.stdout = None
self.stderr = None
threading.Thread.__init__(self)
def run(self):
p = subprocess.Popen('rsync -av /etc/passwd /tmp'.split(),
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
self.stdout, self.stderr = p.communicate()
myclass = MyClass()
myclass.start()
myclass.join()
print myclass.stdout