VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.
Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).
Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.
Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.
Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.
Byla vydána nová verze 1.25 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.
Byla vydána beta verze Linux Mintu 22.2 s kódovým jménem Zara. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze novou XApp aplikaci Fingwit pro autentizaci pomocí otisků prstů nebo vlastní fork knihovny libAdwaita s názvem libAdapta podporující grafická témata. Linux Mint 22.2 bude podporován do roku 2029.
Provozovatel internetové encyklopedie Wikipedie prohrál v Británii soudní spor týkající se některých částí nového zákona o on-line bezpečnosti. Soud ale varoval britského regulátora Ofcom i odpovědné ministerstvo před zaváděním přílišných omezení. Legislativa zpřísňuje požadavky na on-line platformy, ale zároveň čelí kritice za možné omezování svobody slova. Společnost Wikimedia Foundation, která je zodpovědná za fungování
… více »Byla vydána verze 2.0.0 nástroje pro synchronizaci dat mezi vícero počítači bez centrálního serveru Syncthing (Wikipedie). Přehled novinek na GitHubu.
Řešení dotazu:
setpgid(0,getppid())
a parent zavolá setpgid(0,0)
- tak by malo stačiť zavolať waitpid(0,&status,0)
.
Daj vedieť, či to zafunguje.
fork()
vyleze PID potomka. Takže by mělo stačit si ty PID někde poznačit a pak volat normálně wait(pid)
na každý ten PID. Tím se zajistí, že se bude pokračovat, až všchni potomci vychcípou.
A priori to problém není, protože stejně nechcete pokračovat dál, dokud neskončí všichni, a zpoždění dané tím, že pak ještě několikrát zavoláte waitpid()
na potomky, kteří už dávno skončili, je zanedbatelné. Na druhou stranu, při téhle metodě vám v systému mohou poměrně dlouho (v závislosti na tom, s jakými odstupy potomci končí) viset zombie, což nepatří k dobrým mravům.
Osobně bych to řešil spíš tak, že budu v cyklu volat waitpid(-1, …)
, dokud neskončí všichni potomci. Pokud chcete být opatrný, můžete si potomky "odškrtávat" (udržovat příznak, kdo už skončil), jinak stačí evidovat počet dosud běžících (a čekat, až klesne na nulu).
V každém případě je ale potřeba dávat pozor na to, že to, že návratová hodnota waitpid()
je PID potomka, ještě automaticky neznamená, že potomek opravdu skončil (je potřeba kontrolovat status).
a zpoždění dané tím, že pak ještě několikrát zavoláte waitpid() na potomky, kteří už dávno skončili, je zanedbatelné.A nemůže se stát, že by některý z mých procesů skončil a mezitím se v systému objevil jiný (cizí) se stejným číslem a já pak čekal na něj, což nechci?
All of these system calls are used to wait for state changes in a child of the calling process
for(j = 0; j < 5; j++)
{
waitpid(-1, NULL, 0);
}
Hlavní proces bude čekat, než se ukončí 5 procesů a pak si povalí dál.
Vypadá, že to funguje. Co si o tom myslíte?
while(wait() > 0) { /* no-op */ ; }
Tiskni
Sdílej: