Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (39 – предобработка мультипроцессов, часть 40)

предыдущая часть ««»» следующая часть

Строки 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

это интересно
С развитием социальных сетей и различного рода месенжеров коммерция и монетизация пришла и в эту сферу. Гарантия быстрого продвижения и накрутка поведенческих факторов помогает получить популярность профилю или группе даже зарегистрированной совсем недавно. Популярности поможет накрутка в Одноклассниках , которую можно получить достаточно просто.

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония