-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Zdravej Rosene,

Ta naposledak imam chestta da portvam edno neshto koeto sam pisal za 
Linux/FreeBSD za Solaris (Intel/Sparc). Tova za koeto mislja da ti se 
oplacha, poxvalja i t.n. e svarzano s Solaris (za sega sam go testval samo na 
Intel, no tazi vecher shte go izsledvam i na Sparc) i moze da ne mu 
obrushtash mnogo vnimanie. Smetnax che moze da ti stane neshto interesno, ili 
da me posavetvash kak da ... si resha problema :-). Ta vaprosniat software e 
za C++ i polzva libxml, stl, socket-i i fork() /za da ne navlizam v 
threading-a/. 
Tova chudo na misalta predstavljava edin dispecher na 2 procesa koito nalivat 
voda v edin spool (failov) i edin worker kojto vadi neshtata ot spool-a i gi 
obrabotva. Ta dispecher-a, go prispivam s pause(), i kato mu podam HUP signal 
idejata mi e da se prekonfigurira i da si zapusne procesite nanovo, a kato mu 
pratja TERM da utrepe vsichki procesi za koito se grizi. Taka, tova e 
sravnitelno ... nikakva zadachka, no kato se ima predvid che kato mu pratja 
za 2-ri pat HUP, sled kato se prezaredi ... segmentation fault v libc-to 
;-((( Tova si go fix-nax, sprjax da polzvam pause() i vmesto tova go sleepvam 
s nanosleep() za njakolko sec i posle da proverjava dali njakoj ot 
naslednicite mu ne sa umreli. Da se seshtash za BUGZILLA-ta na Solaris? 
;-)) Mislja che ako napisha oshte njakoj red i shte trjabva da zaobikaljam 
kernel-a ;-))

Drugiat ... lek moment e v worker-a. Toj zapuska njakav script (configuriran 
nejde v XML) i mu podava parametri (fork() + execve()), kato parent-a chaka X 
secundi i ako scripta ne e svarshil -> KILL -TERM, a po kusno i KILL -KILL. I 
tova dobre, no za da izchakam timeout-a sam pusnal edin alarm() i sled tova 
waitpid() ili familia (wait(), wait3(), wait4(), waitpid()). E da no ne. 
wait()-a vinagi izliza s -1!!!. Ako poglednesh v man-a shte vidish che ima 
opisani edin specialen flag SA_HASNOCHILD ili neshto takova i SIGCHLD da ne e 
SIG_IGN. E SIGCHLD predi fork()-a sam go varnal na SIG_DFL, taka che problema 
ne e v nego. Ta kato maxna alarm()-ata vsichko si trugva ... po med i maslo.

E ako na tova mu vikam kasmet ... ;-)

Sashtia tozi kod pod Linux i FreeBSD 4/5 xvarchi.... mozesh da go machkash no 
raboti. Uzas. Poslednite njakolko dni sam kato v kapan i ne znaja ot kade 
kakvo shte mi izkochi. 


- -- 
Dimitar Peikov
Programmer Analyst
Globalization Group
"We Build e-Business"  

RILA Solutions  
27 Building, Acad.G.Bonchev Str.  
1113 Sofia, Bulgaria  

phone: (+359 2) 9797320 
phone: (+359 2) 9797300 
fax:   (+359 2) 9733355  
http://www.rila.com 

GnuPG key       http://earth.rila.bg/~mitko/mitko.key.asc
GnuPG key       http://www.bgzone.com/~mitko/mitko.key.asc
Key fingerprint 97AF 6192 78E2 AC68 FD56  CCB0 68B9 DF7D B3C1 9ED7
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE9y/JkaLnffbPBntcRAuTwAKCOwnqp/cQGXvIkDTXdM/9R+hAhVQCfWrNc
5C1+gzG76A3u9qi86QPWReQ=
=2aoq
-----END PGP SIGNATURE-----
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================

Reply via email to