Je suis en train de mettre en œuvre un mécanisme sans verrou à l'aide d'instructions de comparaison et de permutation atomique (double), par ex. Je suis en train d'écrire ceci dans l'assemblage, puis de le lier. Cependant, je me demandais s'il y avait un moyen d'obtenir le compilateur pour faire cela automatiquement pour moi? par exemple. bloc de code surround avec «atomiquement» et le faire comprendre comment implémenter le code comme une instruction atomique dans l'architecture du processeur sous-jacent (ou générer une erreur à la compilation si l'arc sous-jacent ne le supporte pas)?Opérations atomiques en C++ pour les structures sans verrou
P.S. Je sais que gcc a quelques Encastrements (au moins pour CAS)
http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Atomic-Builtins.html#Atomic-Builtins
MSVC a des ops imbriqués, et GCC a des fonctions d'opérations atomiques intégrées, il n'est donc pas nécessaire de faire un assembleur en ligne. En utilisant les wrappers du compilateur, vous resterez portable sur toutes les plates-formes supportées par le compilateur. – bdonlan
MSVC a des ops imbriqués pour les types de données longs seulement, l'OP voulait des doubles. – gbjbaanb
gcc n'a pas d'opérations intégrées pour DWCAS. MSVC a construit pour DWCAS. Aucun OS n'a de DW (mot double, par exemple deux longueurs de pointeur, côte à côte) pour l'incrémentation, la décrémentation, etc. - DW n'existe que et n'existe que (et n'a jamais existé) pour CAS. –