Ключевые слова:signal, (найти похожие документы)
_ RU.UNIX.BSD (2:5077/15.22) _____________________________________ RU.UNIX.BSD _
From : Alex Zakirov 2:5029/5.38 12 Sep 98 15:23:48
Subj : Сигналы
________________________________________________________________________________
Hail, All!
Подскажите плз решение такой проблемы:
Есть два процесса (1) и (2). Процесс (2) шлет процессу (1) сигналы,
скажем SIGUSR1. Частота посылок сигналов непредсказуема и постоянно
изменяется. Процесс (1) по приему сигнала от (2) начинает некую обработку,
время которой все время разное, но, в среднем, большее, чем частота посылок
сигнала процессом (2).
Проблема в том, что обработка должна просходить в хэндлере сигнала,
а тогда получается, что если она затянулась, то некоторое количество
посылаемых (2) сигналов будет потеряно, т.к. этот сигнал в хэндлере
блокируется на время выполнения. Причем я проверил это на простом
примере и это действительно так.
Вопрос в том, где я плохо читал маны, и какие решения будут самые прямые
в это случае? Форк не катит, т.к. слишком дорогая по времени процедура
получается.
** WBR, Alex Zakirov. (2:5029/5, [email protected])
...Проблемы негров не е$#т белых шерифов (c)
--- tin-1.3.unoff.beta-golded-mode * Origin: HellBell Station. Powered by FreeBSD. (2:5029/5.38@fidonet)
_ RU.UNIX.BSD (2:5077/15.22) _____________________________________ RU.UNIX.BSD _
From : Valentin Nechayev 2:5020/400 13 Sep 98 01:48:26
Subj : Re: Сигналы
________________________________________________________________________________
From: "Valentin Nechayev" <[email protected]>
Reply-To: [email protected]
Hello Alex Zakirov!
At 12-Sep-98 15:24, Alex Zakirov wrote:
> Подскажите плз решение такой проблемы:
> Есть два процесса (1) и (2). Процесс (2) шлет процессу (1) сигналы,
> скажем SIGUSR1. Частота посылок сигналов непредсказуема и постоянно
> изменяется. Процесс (1) по приему сигнала от (2) начинает некую обработку,
> время которой все время разное, но, в среднем, большее, чем частота посылок
> сигнала процессом (2).
>
> Проблема в том, что обработка должна просходить в хэндлере сигнала,
> а тогда получается, что если она затянулась, то некоторое количество
> посылаемых (2) сигналов будет потеряно, т.к. этот сигнал в хэндлере
> блокируется на время выполнения. Причем я проверил это на простом
> примере и это действительно так.
Сигналы на такое не pассчитаны. Пpименяй unix sockets или message queues
(из IPC - msgget() и пp.)
--
NVA
--- ifmail v.2.14dev2 * Origin: unknown (2:5020/400@fidonet)