|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : max a sazonoff 2:5004/8.65 13 Oct 2000 17:54:23 To : Artem Chuprina Subject : Re: fork & wait -------------------------------------------------------------------------------- Once (Thursday October 12 2000) at 13:50 someone named Artem Chuprina wrote to max a sazonoff. So, look here: mas>> хм. где я не прав, или почему остаются зомби? mas>> после некоторого времени при выполнении нижеприведенной программы у mas>> меня начинаются копиться зомби. и в конце концов все доходит до того, mas>> что новые форки вообще не создаются... а должно быть всегда 20 mas>> работающих форков.... спрашивается кто виноват и что делать? AC> Виноват, как обычно, ты, а читать perldoc -f wait, указанный там ман и AC> возможно, еще что-нибудь по архитектуре UNIX. Общая идея - после сдыхания AC> ребенка надо вычистить соответствующее место в таблице процессов, получить AC> код завершения и прочую информацию. Вызовом wait. дык я же это делаю! функцией kc. не заметил что ли? но почему то $SIG{CHLD} ловится не всегда. mas>> #!/usr/bin/perl mas>> $SIG{CHLD} = \&kc; mas>> sub kc { mas>> wait; mas>> $SIG{CHLD} = \&kc; mas>> $i--; mas>> } mas>> srand; mas>> $i=0; mas>> while (1) { mas>> $pid = fork; mas>> die "Couldn't fork: $!" unless defined($pid); mas>> if ($pid == 0) { mas>> sleep(rand(20)); mas>> exit; mas>> } mas>> else { mas>> $i++; mas> if ($i>> 20) { mas>> sleep(50); mas>> } mas>> } mas>> } best regards, max a sazonoff. icq#19373869 --- GoldED+/386 1.0.0 * Origin: lucyfer's home (2:5004/8.65) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1474139e74ca3.html, оценка из 5, голосов 10
|