Novinky v synchronizaci
Systém Windows obsahuje následující nové programovací prvky pro synchronizaci.
Windows 8
Nové funkce
-
Odstraní synchronizační bariéru.
-
Způsobí, že volající vlákno počká na synchronizační bariérě, dokud do bariéry nezasáhl maximální počet vláken.
-
Načte výsledky překrývající se operace v zadaném souboru, pojmenovaném kanálu nebo komunikačním zařízení v zadaném intervalu časového limitu. Volající vlákno může provádět pozastavitelný čekací stav.
-
Určuje maximální počet vláken a otáčky pro novou synchronizační bariéru.
-
Čeká na změnu hodnoty na zadané adrese.
-
Probouzí všechna vlákna, která čekají na změnu hodnoty adresy.
-
Probudí jedno vlákno, které čeká na změnu hodnoty adresy.
Nové vzájemně propojené funkce
-
Provede operaci atomového sčítání na zadaných hodnotách LONG. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede operaci atomového sčítání u zadaných hodnot LONGLONG. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomické operace AND se zadanými hodnotami LONG. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomovou operaci AND na zadaných znakových hodnotách. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomické operace AND se zadanými hodnotami SHORT. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomické operace AND se zadanými hodnotami LONGLONG. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Otestuje zadaný bit zadané hodnoty LONG64 a doplní ji. Operace je atomická.
-
Otestuje zadaný bit zadané hodnoty LONG a nastaví ho na hodnotu 0. Operace je atomická a provádí se sémantikou řazení paměti.
-
Otestuje zadaný bit zadané hodnoty LONG a nastaví ho na hodnotu 0. Operace je atomická a provádí se pomocí sémantiky uvolnění paměti.
-
Otestuje zadaný bit zadané hodnoty LONG a nastaví ho na 1. Operace je atomická a provádí se se sémantikou pořadí paměti typu acquire.
-
Otestuje zadaný bit zadané hodnoty LONG a nastaví ho na 1. Operace je atomická a provádí se s uvolňovací paměťovou pořadovou sémantikou.
-
Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 32bitové hodnoty a vymění s jinou 32bitovou hodnotou na základě výsledku porovnání. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 16bitové hodnoty a vymění s jinou 16bitovou hodnotou na základě výsledku porovnání.
-
Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 16bitové hodnoty a vymění s jinou 16bitovou hodnotou na základě výsledku porovnání. Operace se provádí s využitím sémantiky řazení paměti.
-
Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 16bitové hodnoty a vymění s jinou 16bitovou hodnotou na základě výsledku porovnání. Výměna se provádí se sémantikou paměťového uspořádání při uvolňování.
-
Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 16bitové hodnoty a vymění s jinou 16bitovou hodnotou na základě výsledku porovnání. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 64bitové hodnoty a vymění s jinou 64bitovou hodnotou na základě výsledku porovnání. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 128bitové hodnoty a vymění s jinou 128bitovou hodnotou na základě výsledku porovnání.
-
Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané hodnoty ukazatele a vymění se jinou hodnotou ukazatele na základě výsledku porovnání. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Sníží hodnotu zadané 32bitové proměnné o jedna jako atomická operace. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Snižuje hodnotu zadané 16bitové proměnné o jednu, a to jako atomická operace.
-
Sníží hodnotu zadané 16bitové proměnné o jednu jako atomická operace. Operace se provádí s využitím sémantiky řazení paměti.
-
Sníží o jednu jednotku hodnotu zadané 16bitové proměnné v rámci atomické operace. Operace se provádí sémantikou uvolněného řazení paměti.
-
Jako atomická operace sníží hodnotu zadané 16bitové proměnné o jednu. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Sníží hodnotu zadané 64bitové proměnné o jedna jako atomická operace. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Nastaví 64bitovou proměnnou na zadanou hodnotu jako atomická operace. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Nastaví 8bitovou proměnnou na zadanou hodnotu jako atomická operace.
-
Nastaví 16bitovou proměnnou na zadanou hodnotu jako atomická operace. Operace se provádí pomocí sémantiky řazení paměti typu acquire.
-
Nastavit 16bitovou proměnnou na zadanou hodnotu jako atomickou operaci. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Nastaví 64bitovou proměnnou na zadanou hodnotu jako atomická operace. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Atomicky vyměňuje dvojici adres. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomické sčítání dvou 32bitových hodnot. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomické sčítání dvou 64bitových hodnot. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Zvýší (zvýší o jednu) hodnotu zadané 32bitové proměnné jako atomické operace. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Zvýší hodnotu zadané 16bitové proměnné o jednu jako atomická operace.
-
Zvýší (zvýší o jednu) hodnotu zadané 16-bitové proměnné jako atomická operace. Operace se provádí pomocí sémantiky řazení paměti.
-
Zvýší (zvýší o jednu) hodnotu zadané 16bitové proměnné jako atomická operace. Operace se provádí pomocí sémantiky uvolňovacího uspořádání paměti.
-
Zvýší (zvýší o jednu) hodnotu zadané 16bitové proměnné jako atomické operace. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Zvýší (zvýší o jednu) hodnotu zadané 64bitové proměnné jako atomická operace. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomické operace OR se zadanými hodnotami LONG. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede nedělitou operaci OR na zadaných hodnotách znaku. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomické operace OR se zadanými hodnotami SHORT. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomické operace OR se zadanými hodnotami LONGLONG. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Vloží jednosměrně propojený seznam na začátek jiného jednosměrně propojeného seznamu. Přístup k seznamům se synchronizuje v multiprocesorovém systému. Tato verze metody nepoužívá __fastcall konvenci volání.
-
Provede atomickou operaci XOR na zadané hodnoty LONG. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomickou operaci XOR na zadaných char hodnotách. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provede atomickou operaci XOR se zadanými hodnotami SHORT. Operace se provádí atomicky, ale bez použití paměťových bariér.
-
Provádí atomickou XOR operaci se zadanými hodnotami LONGLONG. Operace se provádí atomicky, ale bez použití paměťových bariér.
Windows 7
Nové funkce
-
Aktivuje zadaný časovač s možností čekání a poskytne informace o kontextu časovače.
-
Pokusí se získat zámek čtečky/zapisovače (SRW) ve výhradním režimu. Pokud je volání úspěšné, volající vlákno převezme vlastnictví zámku.
-
Pokusí se získat zámek čtečky/zapisovače (SRW) ve sdíleném režimu. Pokud je volání úspěšné, volající vlákno převezme vlastnictví zámku.
Nové struktury
-
Obsahuje kontextové informace pro časovač aktivovaný pomocí SetWaitableTimerEx.