Por lo que he leído de Herb Sutter y others, pensaría que volatile
y la programación concurrente eran conceptos completamente ortogonales, al menos en lo que respecta a C/C++. Sin embargo, en GCC implementation todas las funciones miembro de std::atomic
tienen el calificador volatile
. Lo mismo es cierto en Anthony Williams's implementation de std::atomic
.¿Por qué el calificador volátil se usa a través de std :: atomic?
¿De qué se trata, mis variables atomic<>
necesitan ser volatile
o no?
+1 Sr.Williams está aquí en SO, tal vez él puede aparecer y dar una respuesta :) – AraK
He visto una pregunta en comp.std.C++ sobre eso. Recuerde que las garantías 'volátiles' que lee y escribe en un solo hilo se hacen en orden y que un objeto volátil no puede tener funciones miembro no volátiles que se invoquen sobre él (como const). Pero más allá de eso, no tengo ni idea acerca de los hilos en C++. Cada vez que trato de leer sobre esto en el Estándar, estoy empezando a darme por vencida, no siendo capaz de captar la cantidad de indirecciones y lógicas en el texto xD –