Ist volatile int in C so gut wie std::atomic<int> von C++0x?

Ist volatile int in C so gut wie std::atomic<int> von C++0x?


Ich brauche atomare Variablen in meinem Programm. Bisher habe ich std::atomic<int> verwendet , aber die Plattform, auf der ich jetzt arbeite, hat keinen g++ Compiler, der C++0x unterstützt. Ich habe volatile int verwendet und es scheint zu funktionieren, da ich in dem Multicore-System, auf dem ich es teste, noch keine Race-Bedingung erlebt habe.


Meine Frage ist, ob volatile int ist atomar wie std::atomic<int> ? Erzeugt es auch Speicherbarrieren (die ich auch benötige)?


Antworten:


Ich habe gesehen, wie Sie in einigen Kommentaren nach GCC gefragt haben. Bitte schön.


Die integrierten Funktionen von GCC für den atomaren Speicherzugriff