Строки 57-83. Подпрограмма do_child (). Выполняет цикл accept () в каждом дочернем процессе, принимая и обрабатывая входящие запросы на установление соединения от клиентов, например, это может быть процесс запроса страницы с информацией. После входа в подпрограмму локальная переменная % status связывается с сегментом разделяемой памяти, обозначенным параметром shm_glue. Поскольку предполагается, что этот сегмент уже был создан родительским процессом, в этом вызове не используются опция create или exclusive. Если связывание переменной не может быть выполнено, дочерний процесс завершает работу с сообщением об ошибке.
Устанавливается файл блокировки для упорядочения доступа, и подпрограмма входит в цикл accept (). При каждом изменении состояния дочернего процесса подпрограмма записывает его новое состояние непосредственно в переменную % status и сообщает родительскому процессу об изменении этой разделяемой переменной, отправляя ему сигнал alrm. Во всем остальном подпрограмма do_chiId () идентична предыдущей версии, включая то что в ней для перехвата и корректной обработки сигналов hup применяется блок eval {}.
Строки 84-87. Подпрограмма cleanup_child (). Эта подпрограмма вызывается подпрограммой reap_child () модуля Daemon для обработки информации о дочернем процессе, который был только что удален из системных таблиц. Идентификатор дочернего процесса удаляется из хеша %status, что обеспечивает поддержание этого хеша в актуальном состоянии, даже если завершение некоторых дочерних процессов происходит преждевременно.
Хотелось бы сделать несколько заключительных замечаний в отношении сервера. Изначально мы пытались использовать одну и ту же связанную переменную % STATUS и для родительского, и для дочернего процессов, позволяя дочерним процессам наследовать переменную % STATUS путем ветвления. Это решение оказалось ошибочным, поскольку модуль IPC::Shareable перераспределял сегмент разделяемой памяти перед завершением работы каждого дочернего процесса. Этот эксперимент показал, что дочерний процесс, наряду с остальной частью опций из разделяемой переменной, наследовал и опцию destroy.
2014-12-18 23:43:12
это интересно С развитием социальных сетей и различного рода месенжеров коммерция и монетизация пришла и в эту сферу. Гарантия быстрого продвижения и накрутка поведенческих факторов помогает получить популярность профилю или группе даже зарегистрированной совсем недавно. Популярности поможет накрутка в Одноклассниках , которую можно получить достаточно просто.