Помимо завершения дочернего процесса, функция waitpid
могла бы вернуться рано, если была прервана сигналом. Если это так, блок if
не будет введен и попытка waitpid
будет предпринята снова.
Без цикла, если waitpid
прервано, вы окажетесь в состоянии, когда родительский процесс не ждет дочернего процесса, и вы получите процесс зомби, когда дочерний процесс действительно завершится. Этот зомби не будет очищен до тех пор, пока не выйдет родительский процесс, после чего процесс init становится родительским и автоматически ожидает зомби.
Я думаю, что Вы найдете nltk полезное. А именно, классифицировать модуль.
При попытке обнаружить язык, это хорошо работает даже с довольно краткими текстами.
API достаточно близок к Вашему, но я не знаю, называют ли это байесовским классификатором.
Может быть, это может быть полезно: http://www.divmod.org/trac/wiki/DivmodReverend