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í
×
    včera 13:11 | Nová verze

    Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    2.5. 22:33 | Nová verze

    Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 14
    2.5. 21:22 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 2
    2.5. 19:33 | Nová verze

    Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    2.5. 11:22 | Bezpečnostní upozornění

    Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.

    Ladislav Hagara | Komentářů: 2
    2.5. 11:00 | Nová verze

    Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".

    Ladislav Hagara | Komentářů: 3
    1.5. 23:22 | IT novinky

    Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).

    Ladislav Hagara | Komentářů: 21
    1.5. 22:22 | Nová verze

    Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".

    Ladislav Hagara | Komentářů: 0
    1.5. 12:55 | Nová verze

    Microsoft vydal novou velkou aktualizaci 2404.23 v září 2019 pod licencí SIL Open Font License (OFL) zveřejněné rodiny písma Cascadia Code pro zobrazování textu v emulátorech terminálu a vývojových prostředích.

    Ladislav Hagara | Komentářů: 0
    1.5. 05:33 | Nová verze

    OpenTofu, tj. svobodný a otevřený fork Terraformu vzniknuvší jako reakce na přelicencování Terraformu z MPL na BSL (Business Source License) společností HashiCorp, bylo vydáno ve verzi 1.7.0. Přehled novinek v aktualizované dokumentaci. Vypíchnout lze State encryption.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (20%)
     (23%)
     (37%)
     (20%)
    Celkem 30 hlasů
     Komentářů: 7, poslední včera 22:24
    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
    2.5.2008 22:37 František Ryšánek
    Rozbalit Rozbalit vše Re: C++ ukončení vlákna
    Jsem samouk, snad mě nikdo nebude tlouct, když přispěju troškou do mlýna :-)

    1) chcípat vlákno přes booleovskou proměnnou bez dalších opatření (synch.primitiv) lze bez problému v případě, že zápis do proměnné je od přírody atomický a dál záleží na kontextu řízeného vlákna, zda mu nevadí, že třeba proběhne svoji smyčku o jednou méně nebo o jednou více. Což typicky nevadí u jednoduchých "hlídacích" smyček apod. Pokud vlákno čeká v nejakém blokujícím syscallu, který je navíc interruptible, tak se dá usmrcení vlákna vylepšit o to, že mu člověk navíc pošle signál - ale tady už bacha na atomicitu a synchronizaci... Pokud připadá v úvahu jak explicitní tak svévolné ukončení vlákna, začne být synchronizace na konci zajímavá :-)

    2) Pokud mám větší počet "dělnických" vláken stejného druhu, obvykle si pro ně vyrobím třídu worker_thr nebo tak nějak. V této třídě mám přesně v duchu původního příspěvku typicky nějakou booleovskou proměnnou typu "zhebni" nebo tak nějak :-) Ne statickou, ale normálního membera. Takže každé vlákno má svoji chcípací proměnnou. Plus jako normální membery mám v této třídě různá synchronizační primitiva (mutexy a podm.proměnné), podle potřeby. A samozřejmě jakákoli další data, která jsou thread-private pro dané dělnické vlákno. Potažmo pointer na instanci téhle třídy se dá poslat vláknu při startu skrz argument void* data v rámci pthread_create(), takže vlákno ví, kde má svůj vlastní soukromý objekt. Když to vezmete o krok dál, proč by vlastně funkce tvořící tělo vlákna nemohla být taky normální member metodou, takže by si svůj objekt nesla implicitně s sebou? Tedy proč ne: proto, že pointer na tuto funkci je třeba předat jako argument pthread_create(), což s normální member metodou nejde. Skrz legacy Cčkový prototyp pthread_create() neprotlačíte vedle pointeru na metodu ještě pointer na její její vlastnický objekt (nemluvě o problémech s late binding)... přesněji řečeno: pointer na metodu neuděláte. Ledaže by ta metoda byla deklarována jako statická. Pointer na statickou metodu udělat lze, a s použitím "plné kvalifikace" ji lze předat jako argument ptherad_create(worker_thr::makej). Jenom do ní musíte pointer na konkrétní objekt předat skrz tradiční void* data. Nakonec to dopadne tak, že skutečné tělo vlákna vymodelujete do podoby normální member metody (která může být i polymorfní), a k ní nadeklarujete ještě doprovodnou statickou metodu, která jí poslouží čistě jako tenký wrapper pro nahození vlákna skrz pthread_create().

    Počítám, že by šlo nějak zapojit šablony nebo aspoň preprocesor, ušetřit si tak datlování a znepřehlednit zdroják :-) Taky si vybavuji, že pro C++ existují hotové "vláknovací knihovny", které se používají košer C++ způsobem... Výše popsané míchání C a sousedních primitivních rysů C++ zavání plebejstvím a polopatismem, které nesluší skutečnému mistru C++ :-) Ale mě osobně tohle míchání Cčka s entry-level C++ vždycky náramně vyhovovalo... třeba kombinace C++ exceptions s posixovými vlákny a signály je vcelku hlavolam, pokud se pamatuji tak bez jednoznačného řešení.

    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.