On Fri, Jun 03, 2005 at 11:09:00AM +0400, JoyLink wrote: > > Интересно также узнать, в каких случаях может потребоваться именно > > non-threaded perl. > > Я достаточно давно использую это ПО http://www.icdevgroup.org для организации > интернет-магазина (). Оно требует именно non-threaded perl > (http://www.icdevgroup.org/interchange-doc-5.2.0/icfaq.html#Configuration%20Problems), > хотя ситуация может измениться с выпуском новой версии. Проблема в том, что в threaded perl используется специальный алгоритм кэширования ppid для тредов, который не учитывает UNIX семантику изменения ppid при смерти родительского процесса (значение ppid в этом случае изменяется на 1, т.е. рипать осиротевших потомков будет процесс init). Исправление для данного конкретного случая уже некоторое время существует, но оно, к сожалению, не вошло в perl-5.8.7. В исходниках interchange есть hackaround: вместо getppid() может использоваться syscall(64) -- это не портабельно, но по меньшей мере работает на Linux. Чтобы включить этот hackaround, в interchange.cfg, насколько я понял, нужно добавить Variable MV_GETPPID_BROKEN 1 Других противопоказаний для threaded perl я не вижу.