abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 06:11 | Zajímavý článek

    Man Yue Mo z GitHub Security Lab se podrobně rozepsal o již opravené zranitelnosti CVE-2023-6241 v Arm Mali GPU umožňující získání roota na telefonu Pixel 8 s povoleným MTE (Memory Tagging Extension).

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | IT novinky

    V San José probíhá vývojářská konference NVIDIA GTC 2024. CEO společnosti NVIDIA Jensen Huang měl dvouhodinovou keynote, ve které představil celou řadu novinek: NVIDIA Blackwell platform, NVIDIA NIM microservices, NVIDIA Omniverse Cloud APIs, Project GR00T, …

    Ladislav Hagara | Komentářů: 0
    včera 14:33 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy jednotlivých přednášek z letošního Installfestu.

    Ladislav Hagara | Komentářů: 10
    včera 13:33 | Pozvánky

    Od 21. do 23. března proběhnou Arduino Days 2024. Sledovat bude možné oficiální streamy. Zúčastnit se lze i lokálních akcí. V Česku jsou aktuálně registrovány dvě: v Praze na Matfyzu a v Poličce v městské knihovně.

    Ladislav Hagara | Komentářů: 0
    včera 12:11 | Pozvánky

    Letošní ročník konference LinuxDays se uskuteční o víkendu 12. a 13. října, opět se potkáme v pražských Dejvicích na FIT ČVUT. Také během letošního ročníku nás budou čekat desítky přednášek, workshopy, stánky a spousta doprovodného programu. Aktuální dění můžete sledovat na Twitteru, Facebooku nebo na Mastodonu, přidat se můžete také do telegramové diskusní skupiny.

    Petr Krčmář | Komentářů: 3
    včera 09:00 | Nová verze

    Byla vydána nová major verze 2.0.0 a krátce na to opravné verze 2.0.1 open source online editoru Etherpad (Wikipedie) umožňujícího společné úpravy v reálném čase.

    Ladislav Hagara | Komentářů: 0
    včera 08:00 | IT novinky

    Elonem Muskem založena společnost xAI otevřela pod licencí Apache 2.0 svůj AI LLM model Grok-1.

    Ladislav Hagara | Komentářů: 3
    včera 00:44 | Nová verze

    Matematický software GNU Octave byl vydán ve verzi 9.1.0. Podrobnosti v poznámkách k vydání. Nově je preferovaný grafický backend Qt a preferovaná verze Qt 6. V tomto vydání byly přepracovány funkce pro převod čísel z desítkové soustavy. Jako obvykle jsou zahrnuta také výkonnostní vylepšení a zlepšení kompatibility s Matlabem.

    Fluttershy, yay! | Komentářů: 0
    17.3. 22:33 | Zajímavý článek

    Společnost PINE64 stojící za telefony PinePhone nebo notebooky Pinebook publikovala na svém blogu březnový souhrn novinek. Vypíchnout lze, že pracují na virtuálním asistentu PineVox a zatím bezejmenných sluchátkách na lícní kosti (bone conduction).

    Ladislav Hagara | Komentářů: 0
    17.3. 18:33 | Nová verze

    Hyprland, kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, je již dva roky starý. Při té příležitosti byla vydána verze 0.37.0 (a záhy opravná 0.37.1 řešící chybu ve vykreslování oken). Nově závisí na knihovně hyprcursor, která poskytuje škálovatelné kurzory myši.

    Fluttershy, yay! | Komentářů: 3
    Steam
     (25%)
     (28%)
     (13%)
     (10%)
     (25%)
    Celkem 310 hlasů
     Komentářů: 4, poslední 11.3. 21:45
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    9.3.2011 17:32 alexfa | skóre: 7
    Rozbalit Rozbalit vše SIGCHLD v asynchronim programu
    Dobry den,

    narazil jsem v jednom svem projektu na "zajimave" zjisteni, ktere se tyka POSIXoveho signalu SIGCHLD (resp. SIGCLD).

    Program je navrzen asynchronne - tzn. ma ve svem jadru smycku, ktera reaguje na udalosti na socketech (select/poll) a vlastni logika je pak napsana jako obsluha techto udalosti. Jednou ze soucasti kodu je take spravce podprocesu - ten pracuje tak, ze na pozadani spusti obecny podprocess (fork a pripadny exec) a to opet v asynchronim modu, tzn. programator si zaregistuje obsluhu udalosti pro spousteny proces a vrati rizeni programu zpet asynchronimu jadru.

    Cele to pracuje dle ocekavani a s resenim jsem byl po nejakou dobu spokojen. Pak se bohuzel ale zacaly objevovat chyby spojene se systemovymi volanimi, ktere koncily ve stavu EINTR. Celkem obratem me doslo, ze asynchronne bezici podproces z nejakeho duvodu skoncil a vygeneroval signal SIGCHLD (ktery muj program spravne zachytil a zaradil do fronty udalosti pozadavek na vyzvednuti exit statusu pomoci systemove fce wait a vygenerovani prislusne udalosti OnChildExit). Bohuzel side-efekt k teto udalosti je take preruseni pripadneho systemoveho volani - program sice neni multithreadovany ale diky sve asynchronni povaze muze delat prakticky cokoliv (a to i v knihovne treti strany). Typickym prikladem je operace write, ktera 'neco' zapisuje na disk a je prerusena signalem SIGCHLD ... to 'neco' je samozrejme hodne dulezite a zprostredkovane knihovnou, kterou nemohu opravovat (a i kdybych mohl, tak dle meho nazoru takova zaludnost v reseni nemuze zustat, protoze se bude periodicky vracet a prekvapovat kazdeho novacka ve vyvojovem tymu).

    Jako reseni toho problemu jsem zakazal obsluhu SIGCHLD signalu (cimz jsem malicko opustil vody definovane v puvodnim POSIX stadardu). To samozrejme okamzite vyresilo problem s 'pretrhavanim' systemovych volani, nicmene to take znamena, ze jiz nezjistim exit status podprocesu (podproces preskoci fazi 'zombie' a volani funkce wait vraci chybu neexistujiciho pidu). Prakticky to znamena, ze nedokazi zjistit navratovou hodnotu (return code/exit code) podprocesu, jeho ukonceni nastesti aplikace zaregistuje, protoze take dojde uzavreni stdout a stderr descriptoru.

    Jak jsem pochopil z par dotazu na Google, toto je stav, ktery nema univerzalni reseni (tzn. v POSIXovem standardu). Bud budu mit zapnuty SIGCHLD a budu moct pouzivat wait a tudiz zachytavat exit status podprocesu ale zaroven pak budu trpet na EINTR chyby, nebo SIGCHLD budu ignorovat a pak nemam cesty jak zjistit navratovy kod podprocesu. Pro uplnost dodam, ze 'synchronni' volani podprocesu (napr. fce system) pracuje normalne.

    Moje otazka je, zda nevite o nejakem reseni, jak o exit code neprijit a zaroven se vyhnout EINTR problemu.

    Muj napad spociva ve vytvoreni 'wrapperu' - meziprocesu, ktery budu pouzivat mezi vlastnim spoustenym podprocesem a asynchronim parentem a ktery bude pouzivat synchronni exec a posleze komunikovat return code rodici jinou nez signalovou cestou. Toto je ale docela slozite reseni, do ktereho se mi moc nechce, pokud nebudu mit jistotu, ze toto nelze resit jinym, treba i platform-specific resenim. Cilovou platformou je pro me Linux ale reseni by obecne melo fungovat i na Mac OSX ...

    Diky, Ales
    Ales Teska | Twitter: @alesteska | TeskaLabs | GitHub

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.