-----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 ============================================================================