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 00:11 | Nová verze

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 7.0.0. Pro sandboxing se na Linuxu nově používá Landlock místo Bubblewrap. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

    Ladislav Hagara | Komentářů: 1
    včera 23:33 | Nová verze

    Správce fotografií Shotwell byl vydán ve verzi 33.0 (GitLab). Hlavní novinkou v tomto vydání po dvou letech je přechod na GTK4.

    ʚĭɞ 🍉 | Komentářů: 0
    včera 01:44 | Komunita

    Na YouTube byly publikovány videozáznamy přednášek a na Flickru fotografie z konference EuroPython 2026.

    Ladislav Hagara | Komentářů: 0
    12.9. 18:11 | Nová verze

    Byl vydán Debian 13.7, tj. sedmá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    12.9. 02:00 | Zajímavý článek

    Jiří Eischmann se v příspěvku Fiasko jménem W Social na svém blogu věnuje evropské sociální síti W: "W Social je příkladem toho, že se problémy sociální sítí nedají řešit od exekutivního stolu. Když na začátku tohoto roku v Davosu oznámili vznik nové sociální sítě W Social, politici se mohli přetrhnout ve chvalozpěvech. Konečně evropská sociální síť a ještě s ověřením identity. … Jak se ukázalo, když v Davosu W Social oznamovali, neměli kromě

    … více »
    Ladislav Hagara | Komentářů: 19
    11.9. 18:00 | Bezpečnostní upozornění

    Výrobce hardwarových kryptoměnových peněženek Trezor upozorňuje na bezpečnostní incident u společnosti Brevo, kterou využívá k odesílání newsletterů. Útočník na e-mailové adresy odeslal phishingový e-mail.

    Ladislav Hagara | Komentářů: 5
    11.9. 14:33 | Komunita

    Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za srpen 2026. Aplikace XApp mají vlastní webovou stránku xapp-project.org. Představena byl čtečka EPUB s názvem Xepub a kalendář Clockenstein.

    Ladislav Hagara | Komentářů: 0
    11.9. 11:44 | Nová verze

    Byla vydána nová verze 3.2.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    11.9. 11:33 | Nová verze

    Bylo vydáno Ubuntu 24.04.5 LTS, tj. páté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    11.9. 04:33 | Komunita

    Švýcarsko testuje přechod z Microsoft 365 na FOSS, konkrétně balík openDesk (Wikipedie) od německé státní společnosti ZenDiS (Wikipedie), s cílem posílit digitální suverenitu.

    Ladislav Hagara | Komentářů: 10
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (4%)
     (21%)
     (29%)
     (7%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2661 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    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: 764×
    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.