Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 18, 2008 16:50:27

ods
От:
Зарегистрирован: 2007-03-03
Сообщения: 47
Репутация: +  0  -
Профиль   Отправить e-mail  

segmentation fault

shiza
У меня такое подозрение - что этот fork жрет дофига памяти.
Там же небось на каждый форк уходит своя копия питона?
Весь код (читай: всё, что написано на C) будет общий, а вот адресное пространство копируется, то есть каждый процесс имеет свою копию данных (питоновский код в данном случае тоже является данными).
Вообще это миф, что при использовании fork будет намного меньше проблем, чем при использовании threads. Нет проблем, если сразу после fork в одном процессе выполняется exit() или exec*() (для последнего случая на некоторых платформах существует vfork, который адресное пространство не копирует, тем самым делая операцию очень быстрой). fork вообще очень плохо дружит с ООП. Например, если вы сконструировали объект до вызова fork, а деструктор вызывается после, то он будет вызвал несколько раз. С внутренними данными проблем не возникает, зато они есть, если вы в деструкторе подчищаете какие-то внешние ресурсы.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version