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

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

Реклама

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

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

Поэтому для получения информации о состоянии применяется объект IO::Select, созданный в главном потоке, в котором выполняется вызов метода can_read() с тайм-аутом в 1 секунду. Входящий запрос на установление соединения поступает в течение этого времени, он обслуживается. В ином случае выполняется возврат в начало цикла для проверки того, не изменилось ли состояние. Если метод can_read () возвращает истинное значение, это значит, что сокет готов для выполнения функции accept () и получения, например, контента страницы http://www.mirclimata.ru/catalog/conditioning/kanalnye-konditsionery/ , представляющей канальные кондиционеры. Упорядочивается доступ к функции accept () путем блокировки переменной $accept_lock и вызывается функция accept (). В случае успешного выполнения устанавливается состояние потока “busy” и обслуживается соединение. После закрытия соединения состояние потока снова устанавливается равным “idle”. После выхода из цикла accept () подпрограмма устанавливает код состояния равным undef, в результате чего подпрограмма status ( ) удаляет TID данного процесса из хеша % status.

Строки 71-83. Подпрограмма status (). Данная подпрограмма отвечает за поддержания хеша % status в актуальном состоянии. Выполнение подпрограммы начинается с блокирования переменной $status, чтобы состояние хеша не изменялось бесконтрольно. Если подпрограмма была вызвана только с параметром, обозначающим идентификатор потока, она отыскивает код состояния этого потока в хеше %status и возвращает его. В ином случае, вместе с этим идентификатором потока был указан новый код состояния, хеш % status соответствующим образом изменяется и вызывается функция cond_broadcast () с указанием переменной $status для передачи всем потокам, ожидающим изменения этой переменной информации о том, что в хеш % status были внесены изменения.



2014-12-26 13:36:06

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


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


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


РЕКОМЕНДУЕМ

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