Re: [devel] Просьба потестировать

Sergey Pinaev =?iso-8859-1?q?dfo_=CE=C1_antex=2Eru?=
Пн Мар 22 14:13:44 MSK 2004


hi.
On Mon, 22 Mar 2004 16:58:28 +0600
Michael Pozhidaev <msp на altlinux.ru> wrote:

>> Подозреваю, что это из-за того, что mp у тебя не volatile.
>> 
MP> Можно подробнее, не понял.

Ну у тебя там описано pid_t mp глобально, и ему присваивается
значение в одной функции, а используется в другой.
Правда у тебя функции последовательно вызываются и ситуации,
когда "вторая" вызовется в середине первой не возникнет, так
что это, не причем.
У тебя получается, что play() запускает дитё (mp), которое запускает
дите (pp) и ждет его смерти. А stop() убивает mp и ждет смерти
кого-нибудь с идентификатором группы как у mp. Соответственно,
если в дите (mp) приехал сигнал "умри" он сразу из waitpid()
вывалится, не дожидаясь, пока pp умрет. И pp окажется zombie,
если я все правильно понимаю... =/

-- 
mail="Sergey Pinaev <dfo на antex.ru>"
url="http://`echo $mail | sed 's/.* <\(.*\)>/\1/' | sed 's/@/./'`"



Подробная информация о списке рассылки Devel