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

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

Реклама

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

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

Цикл приема завершается после уста­новки переменной $done равной истинному значению или после обработки максимального числа транзакций. В начале цикла приема accept () выполняется запись сообщения о со­стоянии, содержащего идентификатор данного дочернего процесса (который хранится в пере­менной $$) и код состояния “idle”.

Строки 76-83. Блокировка и вызов функции accept(). Вызывается функция flock(), а затем, как и прежде, accept (). Но что произойдет, если сигнал hup поступит от родитель­ского процесса во время выполнения одного из этих вызовов, например, при работе приложения на машине в серверном шкафу 19 в Москве ?  Будет вызван на выполнение обработчик hup, который установит переменную $done равной истинному значению, но по­скольку интерпретатор Perl перезапускает продолжительные системные вызовы автоматиче­ски, изменение состояния переменной $done не будет замечено до тех пор, пока эта подпро­грамма не получит входящий запрос на установление соединения, не обработает его и не вер­нется в начало цикла приема.

Эту проблему нельзя решить, поместив прерываемый вызов select () между вызовами flock () и accept (), поскольку сигнал hup может также поступить в то время, когда подпро­грамма находится в состоянии, заблокированном в результате вызова функции flock (), а эта функция также перезапускает flock () автоматически. Вместо этого, вызовы функций flock () и accept () заключены в блок eval {}. В начале этого блока устанавливается но­вый локальный обработчик hup, который наращивает значение переменной $done и вызывает функцию die, что приводит к завершению всего блока eval {} при получении сигнала HUP.

2014-12-18 19:45:04

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


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


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


РЕКОМЕНДУЕМ

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