Co nowego w synchronizacji
System Windows zawiera następujące nowe elementy programowania na potrzeby synchronizacji.
Windows 8
Nowe funkcje
-
Usuwa barierę synchronizacji.
-
Powoduje, że wątek wywołujący czeka na barierę synchronizacji, aż maksymalna liczba wątków wejdzie w barierę.
-
Pobiera wyniki nakładającej się operacji na określonym pliku, nazwanym potoku lub urządzeniu komunikacyjnym w określonym przedziale czasu. Wątek wywołujący może wykonać oczekiwanie z możliwością odbioru alertów.
-
Określa maksymalną liczbę wątków i liczbę spinów dla nowej bariery synchronizacji.
-
Czeka na zmianę wartości pod określonym adresem.
-
Budzi wszystkie wątki oczekujące na zmianę wartości adresu.
-
Wznawia jeden wątek (thread), który oczekuje na zmianę wartości adresu.
Nowe funkcje połączone
-
Wykonuje atomową operację dodawania dla określonych wartości LONG. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje operację atomową dodawania dla określonych wartości LONGLONG. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomową operację AND na określonych wartościach LONG. Operacja jest wykonywana atomicznie, ale bez użycia barier pamięci.
-
Wykonuje atomową operację AND na określonych wartościach znaków char. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomową operację AND na określonych wartościach SHORT. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomową operację AND na określonych wartościach typu LONGLONG. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Sprawdza określony bit określonej wartości LONG64 i uzupełnia go. Operacja jest niepodzielna.
-
Testuje określony bit określonej wartości LONG i ustawia go na 0. Operacja jest niepodzielna i jest wykonywana przy użyciu semantyki porządkowania pamięci.
-
Testuje określony bit określonej wartości LONG i ustawia go na 0. Operacja jest niepodzielna i jest wykonywana przy użyciu semantyki zwalniania pamięci.
-
InterlockedBitTestAndSetAcquire (Testowanie i ustawianie zablokowanego bitu z przejęciem)
-
Sprawdza określony bit określonej wartości LONG i ustawia go na 1. Operacja jest niepodzielna i jest wykonywana przy użyciu semantyki porządkowania pamięci.
-
Sprawdza określony bit określonej wartości LONG i ustawia go na 1. Operacja jest atomowa i wykonywana z semantyką uporządkowania pamięci dla operacji zwalniających.
-
Wykonuje atomową operację porównania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 32-bitowe i wymienia się z inną wartością 32-bitową na podstawie wyniku porównania. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomową operację porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 16-bitowe i wymienia się z inną wartością 16-bitową na podstawie wyniku porównania.
-
Wykonuje atomową operację porównania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 16-bitowe i wymienia się z inną wartością 16-bitową na podstawie wyniku porównania. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci typu acquire.
-
Wykonuje atomową operację porównania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 16-bitowe i wymienia się z inną wartością 16-bitową na podstawie wyniku porównania. Wymiana jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
-
Wykonuje atomową operację porównania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 16-bitowe i wymienia się z inną wartością 16-bitową na podstawie wyniku porównania. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomową operację porównania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 64-bitowe i wymienia się z inną wartością 64-bitową na podstawie wyniku porównania. Operacja jest wykonywana atomowo, ale bez użycia barier pamięciowych.
-
Wykonuje atomową operację porównania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 128-bitowe i wymienia się z inną wartością 128-bitową na podstawie wyniku porównania.
-
Wykonuje atomową operację porównania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości wskaźnika i zamienia jedną wartość wskaźnika na inną w oparciu o wynik porównania. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Zmniejsza (zmniejsza o jeden) wartość określonej zmiennej 32-bitowej jako operacja atomowa. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Dekrementuje (zmniejsza się o jeden) wartość określonej zmiennej 16-bitowej jako operacja niepodzielna.
-
Dekrementuje wartość określonej zmiennej 16-bitowej jako operacja atomowa. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci typu acquire.
-
Dekrementuje (zmniejsza wartość o jeden) wartość określonej zmiennej 16-bitowej jako operacja atomowa. Operacja jest wykonywana przy użyciu semantyki pamięci o porządku wydania.
-
Dekrementuje (zmniejsza o jeden) wartość określonej zmiennej 16-bitowej jako operacja atomowa. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Dekrementuje (zmniejsza o jeden) wartość określonej zmiennej 64-bitowej jako operacja atomowa. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Ustawia zmienną 64-bitową na określoną wartość jako operację niepodzielną. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Ustawia zmienną 8-bitową na określoną wartość jako operację atomową.
-
Ustawia 16-bitową zmienną na określoną wartość jako operację niepodzielną. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
-
Ustawia zmienną 16-bitową na określoną wartość jako operację atomową. Operacja jest wykonywana atomowo, ale bez użycia barier w pamięci.
-
Ustawia zmienną 64-bitową na określoną wartość jako operację atomową. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Atomowa wymiana pary adresów. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomowe dodanie dwóch wartości 32-bitowych. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomowe dodawanie dwóch wartości 64-bitowych. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Zwiększa wartość określonej zmiennej 32-bitowej o jeden jako operacja atomowa. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Inkremetuje wartość określonej zmiennej 16-bitowej o jeden jako operacja atomowa.
-
Zwiększa (o jeden) wartość określonej zmiennej 16-bitowej jako operacja atomowa. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
-
Zwiększa wartość określonej zmiennej 16-bitowej o jeden jako operacja atomowa. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
-
Zwiększa (zwiększa o jeden) wartość określonej zmiennej 16-bitowej jako operacja atomowa. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Inkrementuje (zwiększa wartość o jeden) określoną zmienną 64-bitową jako operacja atomowa. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomową operację OR na określonych wartościach LONG. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomową operację OR na określonych wartościach char. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomową operację OR na określonych wartościach SHORT. Operacja jest wykonywana niepodzielnie, ale bez użycia barier pamięci.
-
Wykonuje atomową operację OR na określonych wartościach LONGLONG. Operacja jest wykonywana atomowo, ale bez użycia barier pamięciowych.
-
Wstawia listę jednokierunkową na początku innej listy jednokierunkowej. Dostęp do list jest synchronizowany w systemie wieloprocesorowym. Ta wersja metody nie używa __fastcall konwencji wywoływania.
-
Wykonuje atomową operację XOR na określonych wartościach LONG. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomową operację XOR na określonych wartościach char. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomową operację XOR na określonych wartościach SHORT. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
-
Wykonuje atomową operację XOR dla podanych wartości LONGLONG. Operacja jest wykonywana atomowo, ale bez użycia barier pamięci.
Windows 7
Nowe funkcje
-
Aktywuje określony czasomierz oczekiwania i udostępnia informacje kontekstowe czasomierza.
-
Próba przejęcia wyłącznej blokady SRW za pomocą TryAcquireSRWLockExclusive
-
Próbuje uzyskać lekką blokadę czytania/pisania (SRW) w trybie wyłącznym. Jeśli wywołanie zakończy się sukcesem, wątek wywołujący przejmuje blokadę na własność.
-
Próbuje uzyskać lekką blokadę czytnika/zapisywacza (SRW) w trybie udostępnionym. Jeśli wywołanie zakończy się pomyślnie, wątek wywołujący przejmuje własność blokady.
Nowe struktury
-
Zawiera informacje kontekstowe dla czasomierza aktywowanego za pomocą SetWaitableTimerEx.