Внутри графического интерфейса Python (PyGTK) я запускаю процесс (используя многопроцессорность). Процесс занимает много времени (~ 20 минут), чтобы закончить. Когда процесс завершен, я хотел бы очистить его (извлечь результаты и присоединиться к процессу). Как узнать, когда процесс завершился?
Мой коллега предложил цикл занятости в родительском процессе, который проверяет, завершился ли дочерний процесс. Конечно, есть лучший способ.
В Unix, когда процесс разветвляется, обработчик сигнала вызывается из родительского процесса, когда дочерний процесс завершен. Но я не вижу ничего подобного в Python. Я что-то пропустил?
Как получается, что конец дочернего процесса можно наблюдать из родительского процесса? (Конечно, я не хочу вызывать Process.join(), поскольку это застыло бы интерфейс GUI.)
Этот вопрос не ограничивается многопроцессорной обработкой: у меня точно такая же проблема с многопоточным.