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

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

Реклама

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

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

Строки 15-20. Создание приемного сокета, инициализация сервера. Создается приемный сокет и вызывается процедура init_server () модуля Daemon для записи файла РID и пере­хода в фоновый режим. В этом режиме демон может выполнять ряд операций, например, получение информации с веб страниц, через безлимитный Интернет http://altel.kz/internet/ .

Строки 21-24. Главный цикл. Теперь программа входит в главный цикл, в котором за­пускается определенное число дочерних процессов, указанных константой prefork_children, а затем выполняется переход в режим ожидания до получения сиг­нала. Как будет показано ниже, каждый вызов подпрограммы make_new_child () приво­дит к увеличению значения глобальной переменной $child_count на единицу в резуль­тате создания в ней дочернего процесса, а каждый вызов процедуры обратного вызова chld уменьшает значение переменной $child_count, если он приводит к уничтожению дочернего процесса. Назначение этого цикла состоит в ожидании до тех пор, пока не будет получен chld или другой сигнал, а затем в вызове подпрограммы make_new_child ()  столько раз, сколько потребуется для доведения числа дочерних процессов до предела, установленного константой prefork_children.

Эти действия повторяются неопределенно долго до тех пор, пока родительский процесс не получит сигнал Int или term и не установит переменную $done равной истинному значению.

Строки 25-27. Уничтожение дочерних процессов и выход. После выхода из главного цикла все дочерние процессы уничтожаются путем вызова подпрограммы kill_children () модуля Daemon. Суть этой процедуры выражается следующей строкой кода:

kill TERM => keys %CHILDREN;

где %children — хеш, содержащий идентификаторы активных дочерних процессов, запущен­ных в подпрограмме launch_child (). Подпрограмма kill_children () переходит в состояние ожидания до тех пор, пока не будет уничтожен последний дочерний процесс.



2014-12-10 15:56:47

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


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


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


РЕКОМЕНДУЕМ

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