abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:11 | IT novinky

    Před 30 lety, tj. v úterý 30. dubna 1996, byl spuštěn Seznam.cz.

    Ladislav Hagara | Komentářů: 0
    dnes 11:44 | Komunita

    Byly zpracovány a zveřejněny všechny videozáznamy, které stojí za zveřejnění, z konference FOSDEM 2026.

    Ladislav Hagara | Komentářů: 0
    dnes 01:11 | IT novinky

    Od úterý 28. dubna musí nově uváděné notebooky v Evropské unii podporovat nabíjení přes USB-C. Jednotná nabíječka byla schválena Evropským parlamentem v říjnu 2022.

    Ladislav Hagara | Komentářů: 32
    včera 23:44 | Bezpečnostní upozornění

    Byly publikovány informace o kritické zranitelnosti CVE-2026-31431 pojmenované Copy Fail v Linuxu, konkrétně v kryptografii (AF_ALG). Běžný uživatel může získat práva roota (lokální eskalaci práv). Na všech distribucích Linuxu vydaných od roku 2017. Pomocí 732bajtového skriptu. V upstreamu je již opraveno. Zranitelnost byla nalezena pomocí AI Xint Code.

    Ladislav Hagara | Komentářů: 2
    včera 17:44 | Nová verze

    Textový editor Zed dospěl do verze 1.0. Představení v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Komunita

    Vývojáři svobodného 3D softwaru Blender představili (𝕏, Mastodon, Bluesky) nejnovějšího firemního sponzora Blenderu. Je ním společnost Anthropic stojící za AI Claude a úroveň sponzoringu je Patron, tj. minimálně 240 tisíc eur ročně. Anthropic oznámil sponzorství v tiskové zprávě Claude for Creative Work.

    Ladislav Hagara | Komentářů: 6
    včera 03:55 | Nová verze

    VNC server wayvnc pro Wayland kompozitory postavené nad wlroots - ne GNOME, KDE nebo Weston - byl vydán ve verzi 0.10.0. Vydána byla také verze 1.0.0 související knihovny neatvnc.

    Ladislav Hagara | Komentářů: 0
    28.4. 16:22 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 44. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách

    … více »
    Ladislav Hagara | Komentářů: 7
    28.4. 15:44 | Zajímavý článek

    David Malcolm se na blogu vývojářů Red Hatu rozepsal o vybraných novinkách v GCC 16, jež by mělo vyjít v nejbližších dnech. Vypíchnuta jsou vylepšení čitelnosti chybových zpráv v C++, aktualizovaný SARIF (Static Analysis Results Interchange Format) výstup a nová volba experimental-html v HTML výstupu.

    Ladislav Hagara | Komentářů: 0
    28.4. 15:11 | Nová verze

    Byla vydána verze R14.1.6 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (2%)
     (13%)
     (31%)
     (3%)
     (7%)
     (3%)
     (15%)
     (25%)
    Celkem 1460 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: perl - spuštění příkazu na pozadí a callback

    Přemek Vyhnal avatar 16.8.2008 23:39 Přemek Vyhnal | skóre: 24 | blog: Toto není blog! | Dobřichovice
    perl - spuštění příkazu na pozadí a callback
    Přečteno: 555×
    Problém:

    GTK program v perlu. po kliknutí na tlačítko se spustí funkce, které trvá dlouho než skončí a po jejím dokončení se provede nějaká akce.

    Teď to vypadá nějak takthle:
    sub on_button_click{
       &delat_neco_dlouhyho;
       &zobrazit_hotovo;
    }
    sub delat_neco_dlouhyho{
       sleep 20; &posunout_progressbar;
       sleep 20; &posunout_progressbar;
       sleep 20; &posunout_progressbar;
       sleep 20; &posunout_progressbar;
    }
    
    problém je v tom, že hlavní smyčka čeká na dokončení &on_button_click a nepřekresluje mezitím okno (vypadá jako kdyby zamrzlo)

    chtělo by to to &delat_neco_dlouhyho spustit nějak na pozadí aby hlavní smyčka pokračovala, ale aby měl hlavní program možnost nějak zjistit jestli už je to hotový nebo to pořád pracuje. nebo aby zevnitř &delat_neco_dlouhyho šlo posílat něco zpátky do hlavního okna. (např. % průběhu)

    Poradil by mi někdo jak na to? co nastudovat? stačí nějaká klíčová slova a já si to už najdu (nebo se znovu zeptam ;) )

    Předem mnohokrát děkuji!
    NO RAPTORS!

    Odpovědi

    17.8.2008 18:01 qk_
    Rozbalit Rozbalit vše Re: perl - spuštění příkazu na pozadí a callback
    no pokud chces neco takovyho, tak nevim jestli to ma primo gtk, ale v perlu muzes pouzit thready jako v ostatnich jazycich - http://search.cpan.org/~rgarcia/perl-5.10.0/pod/perlthrtut.pod
    17.8.2008 18:02 qk_
    Rozbalit Rozbalit vše Re: perl - spuštění příkazu na pozadí a callback
    tak a jeden priklad s pouzitim primo gtk - http://www.perlmonks.org/?node_id=470661
    Přemek Vyhnal avatar 17.8.2008 23:07 Přemek Vyhnal | skóre: 24 | blog: Toto není blog! | Dobřichovice
    Rozbalit Rozbalit vše Re: perl - spuštění příkazu na pozadí a callback
    diky! prostuduji a vyzkousim ;)
    NO RAPTORS!
    frEon avatar 17.8.2008 21:42 frEon | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: perl - spuštění příkazu na pozadí a callback
    Talking about music is like dancing to architecture.
    17.8.2008 21:19 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: perl - spuštění příkazu na pozadí a callback
    bez threadov sa to dá riešiť fork a čakať na SIGCHLD
    Přemek Vyhnal avatar 17.8.2008 23:06 Přemek Vyhnal | skóre: 24 | blog: Toto není blog! | Dobřichovice
    Rozbalit Rozbalit vše Re: perl - spuštění příkazu na pozadí a callback
    diky! ten SIGCHLD by moh bejt to co jsem hledal... s forkem uz jsem se o to nejak pokousel ale moc se nedarilo. zkusim to znova a lip ;)

    jo, a jak na to kdybych chtel aby ten potomek posilal do toho hlavniho okna nejaky informace jako "ted delam to a to", "uz mam hotovo" nebo treba prubeh v procentech? narazil jsem na nejaky IPC::Open2. Je to dobrej napad? ;) neukazal by mi nekdo jak na to nebo co s tim? ;) nechci aby to nekdo programoval cely za me, staci nakopnout spravnym smerem ;)

    moc dik!
    NO RAPTORS!
    18.8.2008 08:47 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: perl - spuštění příkazu na pozadí a callback
    Perl Cookbook, kapitola "Process Management and Communication"
    18.8.2008 08:52 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: perl - spuštění příkazu na pozadí a callback
    k tomu IPC::Open2
    Nápad je to plus/mínus dobrý. Pozrite si k tomu ešte: IO::Poll (resp IO::Select), IO::Pipe ... a príslušné stránky s napr "Advanced UNIX Programming"
    Josef Kufner avatar 24.8.2008 21:05 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: perl - spuštění příkazu na pozadí a callback
    Můžeš rozdělit program (binárku) na frontend a backend (dvě binárky). Backend bude čistě konzolová, neinteraktivní věc a spouštět jí z frontendu pomocí popen(). K zobrazení průběhu bude stačit parsovat co vypisuje na stdout, který frontend dostane stejně jakoby četl soubor (pozor na bufferování). Doporučuju backend spouštět z frontendu s parametrem (např. --backend), který mu řekne, že ho spustil frontend. To aby při samostatném spuštění backendu byl poslušně ticho a ohlašoval jen chyby. Kdežto v při spuštění z frontendu šly chyby a podobné výpisy na stdout místo stderr a v opravdu lehce parsovatelné formě.

    Výhoda: Možnost lehce použít backend bez frontendu někde jinde.

    Nevýhoda: Musíš udělat parser, který ale může být velmi jednoduchý. Backend by měl být trochu víc psaný jako samostatný program.
    Hello world ! Segmentation fault (core dumped)
    25.8.2008 13:46 toba
    Rozbalit Rozbalit vše Re: perl - spuštění příkazu na pozadí a callback
    Přesně takhle to dělám, ale při pársování výstupu musím chtě nechtě použít

    while(Gtk2->events_pending) { Gtk2->main_iteration };

    jinak to GUI nacas zamrzne tak jako tak. Vlakna se mi libi ale ne vsechna distra maji perl zkompilovany s jejich podporou.
    Josef Kufner avatar 26.8.2008 00:42 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: perl - spuštění příkazu na pozadí a callback
    Gtk main loop umí obsluhovat události na file descriptorech. Takže ti pak přímo gtk volá callback, když přijdou data. Kuk sem
    Hello world ! Segmentation fault (core dumped)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.