🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #51677

wątki

#51677
From: Paweł
Date: Thu, 03 Dec 2009 18:25
52 lines
2009 bytes
Witam !


W przykładach dotyczących wątków można znaleźć zwykle coś takiego:

$SIG{'CHLD'}=sub { while(waitpid(-1,WNOHANG)>0){} };

defined (my $child=fork()) or die "Błąd wywołania fork():$!";
if ($child==0)
	{....
	exit 0;}

Interesuje mnie pierwsza lina.
W opisie podają, ze wykonuję sie ona po zakończeniu procesu dziecka.
Nie bardzo mogę zrozumieć w jakim celu.
Jeśli proces się zakończy to zwalniane są zasoby i nie widzę sensu aby 
coś jeszcze robić. Jednak jeśli ta linia wykonuje się przed startem 
procesu dziecka to jej wywołanie jest dla mnie logiczne. Zapobiegnie ew. 
tworzeniu się kolejnych wątków. Czy ktoś może wyjaśnić jak to jest w 
rzeczywistości ?





Załóżmy, że program główny składa się z jednej pętli okresowo 
wywoływanej. Chcę w tej pętli utworzyć nowy proces. Jednak tylko w 
sytuacji gdy poprzedni się zakończył. Czy można zrobić to w ten sposób:


my $t=0;
while (1)
{
...

if ($t==0)
	{
		defined (my $child=fork()) or die "Błąd wywołania fork():$!";
	if ($child==0)
		{
		$t=1;
		...

		...
		$t=0;
		exit 0;}
	}

{


Paweł
Technical Details
Message-ID: <hf903i$3ta$1@atlantis.news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
From: Paweł <pawel.neo@neostrada.pl>
Newsgroups: pl.comp.lang.perl
Subject: wątki
Date: Thu, 03 Dec 2009 19:25:54 +0100
Organization: TP - http://www.tp.pl/
Lines: 54
Message-ID: <hf903i$3ta$1@atlantis.news.neostrada.pl>
NNTP-Posting-Host: cqe34.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: atlantis.news.neostrada.pl 1259865010 4010 83.31.236.34 (3 Dec 2009 18:30:10 GMT)
X-Complaints-To: usenet@news.neostrada.pl
NNTP-Posting-Date: Thu, 3 Dec 2009 18:30:10 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit