Nouveautés de la synchronisation
Windows inclut les nouveaux éléments de programmation suivants pour la synchronisation.
Windows 8
Nouvelles fonctions
-
Supprime un obstacle de synchronisation.
-
Fait attendre le thread appelant au niveau d’une barrière de synchronisation jusqu’à ce que le nombre maximal de threads soit entré dans la barrière.
-
Récupère les résultats d’une opération qui se chevauche sur le fichier, le canal nommé ou le périphérique de communication spécifié dans l’intervalle de délai d’attente spécifié. Le thread appelant peut effectuer une attente pouvant être alertable.
-
Spécifie le nombre maximal de threads et le nombre de spins pour une nouvelle barrière de synchronisation.
-
Attend que la valeur à l’adresse spécifiée change.
-
Réveille tous les threads qui attendent que la valeur d’une adresse change.
-
Réveille un thread qui attend que la valeur d’une adresse change.
Nouvelles fonctions interblocées
-
Effectue une opération d’addition atomique sur les valeurs LONG spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération d’addition atomique sur les valeurs LONGLONG spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération AND atomique sur les valeurs LONG spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération AND atomique sur les valeurs char spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération AND atomique sur les valeurs SHORT spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération AND atomique sur les valeurs LONGLONG spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Teste le bit spécifié de la valeur LONG64 spécifiée et le complète. L'opération est atomique.
-
Teste le bit spécifié de la valeur LONG spécifiée et lui affecte la valeur 0. L’opération est atomique et elle est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
-
Teste le bit spécifié de la valeur LONG spécifiée et lui affecte la valeur 0. L’opération est atomique et est effectuée à l’aide de la sémantique de libération de mémoire.
-
Teste le bit spécifié de la valeur LONG spécifiée et lui affecte la valeur 1. L’opération est atomique et elle est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
-
Teste le bit spécifié de la valeur LONG spécifiée et lui affecte la valeur 1. L’opération est atomique, et elle est effectuée avec la sémantique de classement de la mémoire de mise en production.
-
Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 32 bits et échanges spécifiés avec une autre valeur 32 bits en fonction du résultat de la comparaison. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 16 bits spécifiées et les échanges avec une autre valeur de 16 bits en fonction du résultat de la comparaison.
-
Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 16 bits spécifiées et les échanges avec une autre valeur de 16 bits en fonction du résultat de la comparaison. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
-
Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 16 bits spécifiées et les échanges avec une autre valeur de 16 bits en fonction du résultat de la comparaison. L’échange est effectué avec la sémantique de classement de la mémoire de mise en production.
-
Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 16 bits spécifiées et les échanges avec une autre valeur de 16 bits en fonction du résultat de la comparaison. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 64 bits et échanges spécifiés avec une autre valeur 64 bits en fonction du résultat de la comparaison. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs et échanges 128 bits spécifiés avec une autre valeur de 128 bits en fonction du résultat de la comparaison.
-
Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs de pointeur spécifiées et échange avec une autre valeur de pointeur en fonction du résultat de la comparaison. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Décrémente (diminue d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Décrémente (diminue d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique.
-
Décrémente (diminue d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
-
Décrémente (diminue d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
-
Décrémente (diminue d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Décrémente (diminue d’un) la valeur de la variable 64 bits spécifiée en tant qu’opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Définit une variable 64 bits sur la valeur spécifiée en tant qu’opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Définit une variable 8 bits sur la valeur spécifiée en tant qu’opération atomique.
-
Définit une variable 16 bits sur la valeur spécifiée en tant qu’opération atomique. L’opération est effectuée à l’aide de la sémantique d’acquisition de l’ordre de la mémoire.
-
Définit une variable 16 bits sur la valeur spécifiée en tant qu’opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Définit une variable 64 bits sur la valeur spécifiée en tant qu’opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Échange atomiquement une paire d’adresses. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue un ajout atomique de deux valeurs 32 bits. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue un ajout atomique de deux valeurs 64 bits. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Incrémente (augmente d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Incrémente (augmente de 1) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique.
-
Incrémente (augmente de 1) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée à l’aide de la sémantique d’acquisition de l’ordre de la mémoire.
-
Incrémente (augmente de 1) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée à l’aide de la sémantique de classement de la mémoire de mise en production.
-
Incrémente (augmente de 1) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Incrémente (augmente d’un) la valeur de la variable 64 bits spécifiée en tant qu’opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération OU atomique sur les valeurs LONG spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération OU atomique sur les valeurs char spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération OU atomique sur les valeurs SHORT spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération OR atomique sur les valeurs LONGLONG spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Insère une liste liée séparément au début d’une autre liste liée séparément. L’accès aux listes est synchronisé sur un système multiprocesseur. Cette version de la méthode n’utilise pas la convention d’appel __fastcall .
-
Effectue une opération XOR atomique sur les valeurs LONG spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération XOR atomique sur les valeurs char spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération XOR atomique sur les valeurs SHORT spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
-
Effectue une opération XOR atomique sur les valeurs LONGLONG spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire.
Windows 7
Nouvelles fonctions
-
Active le minuteur d’attente spécifié et fournit des informations de contexte pour le minuteur.
-
Tente d’acquérir un verrou de lecteur/enregistreur (SRW) en mode exclusif. Si l’appel réussit, le thread appelant prend la propriété du verrou.
-
Tente d’acquérir un verrou de lecteur/enregistreur mince (SRW) en mode partagé. Si l’appel réussit, le thread appelant prend la propriété du verrou.
Nouvelles structures
-
Contient des informations de contexte pour un minuteur activé avec SetWaitableTimerEx.