<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-2" http-equiv=Content-Type>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face="Arial CE" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2>Vazeny kolegovia!</FONT></DIV>
<DIV><FONT face="Arial CE" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2>Potreboval by som pocitat prijatia SIGCHLD, 
ale mam problem. Urcite je "debilny", lebo viem, ze toto urcite ide.. Pred cca. 
5 rokmi mi&nbsp;tato cinnost isla na Solaris-e... Problem vznika vtedy 
ak&nbsp;velmi blizko seba na casovej osi skoncia dve a viac  "deti". Potom Zacnu 
vznikat zombieci a ja ich navyse neprecitam, ze skoncili, pricom "zombieci" 
blokuju resp. spomaluju dalsie procesy - naraz mi&nbsp; ide </FONT><FONT 
face="Arial CE" size=2>aj 160 procesov (z toho asi 100 zombie) a po exite (kill 
-9 ... :)))) rodica skoncia vsetky procesy do 5s, pricom pocas behu rodica&nbsp; 
neskoncia ani za 15&nbsp; min....</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>Kedze viem, ze ide o nejake nastavenie pending 
a block masiek posielam aj cast zdrojaku, mozno toniekomu pomoze pri 
identifikovani tejto chyby, pretoze ja som sa asi zacyklil....</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2>S vdakou </FONT></DIV>
<DIV><FONT face="Arial CE" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2>Peter Fodrek</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2>long ukoncenych=0,uspesnych;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2>/*<BR>&nbsp;obsluzna rutina SIGCHLD 
<BR>&nbsp;*/<BR>void ukoncil(int sig)<BR>{<BR>&nbsp;&nbsp;&nbsp; int 
statlog;<BR>&nbsp;&nbsp;&nbsp; sigset_t in,out;<BR>&nbsp;&nbsp;&nbsp; 
wait(&amp;statlog);<BR>&nbsp;&nbsp;&nbsp; ukoncenych++;<BR>&nbsp;&nbsp;&nbsp; 
if(WIFEXITED(statlog))<BR>&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;uspesnych++;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp; <BR>//&nbsp;&nbsp;&nbsp; 
sigfillset(&amp;in);<BR>//&nbsp;&nbsp;&nbsp; 
sigprocmask(SIG_UNBLOCK,&amp;in,&amp;out);<BR>}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2>.........</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2>&nbsp;ukoncenych=0;</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>&nbsp;uspesnych=0;</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>&nbsp;&nbsp; struct sigaction 
act;<BR>//&nbsp;&nbsp;&nbsp; 
signal(SIGCHLD,ukoncil);<BR>act.sa_handler=ukoncil;<BR>// 
sigemtyset(&amp;act.sa_mask);<BR>sigfillset(&amp;act.sa_mask);<BR>act.sa_flags=SA_RESTART;<BR>sigaction(SIGCHLD,&amp;act,NULL);</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>//sigpending(&amp;act.sa_mask);</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>.............................</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>do{</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>do{</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>pid=fork();</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>usleep(100000);</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>}while(pid==-1);</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>if(pid==0)</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>{</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>.....</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>exit(0);</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>}</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>spustenych++;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2>}while(......)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2>
<DIV><FONT face="Arial CE" 
size=2>.............................</FONT></DIV></FONT></DIV>
<DIV><FONT face="Arial CE" size=2>while(ukoncenych!=spustenych)</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>{</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>&nbsp;&nbsp;&nbsp; 
usleep(100000);</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>&nbsp;&nbsp;&nbsp; printf("blabala %ld/%ld\t 
blabala%ld",ukoncenych,spustenych,uspesnych);</FONT></DIV>
<DIV><FONT face="Arial CE" size=2>}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2><BR>&nbsp;</DIV></FONT></BODY></HTML>