Preguntas etiquetadas con stdatomic



1
¿Adquisición / liberación atómica C11 y falta de coherencia x86_64 de carga / almacenamiento?
Estoy luchando con la Sección 5.1.2.4 del Estándar C11, en particular la semántica de Release / Acquire. Observo que https://preshing.com/20120913/acquire-and-release-semantics/ (entre otros) establece que: ... La semántica de liberación evita el reordenamiento de memoria de la liberación de escritura con cualquier operación de lectura o escritura que la preceda en …


1
¿Cómo asignar un vector de tipos atómicos?
¿Cómo puedo asignar los miembros de un vector con un tipo atómico? #include <iostream> #include <thread> #include <vector> using namespace std; int main() { vector<atomic<bool>> myvector; int N=8; myvector.assign(N,false); cout<<"done!"<<endl; } https://wandbox.org/permlink/lchfOvqyL3YKNivk prog.cc: In function 'int main()': prog.cc:11:28: error: no matching function for call to 'std::vector<std::atomic<bool> >::assign(int&, bool)' 11 | …

1
¿Por qué los componentes atómicos del CCG necesitan una versión "genérica" ​​adicional?
De acuerdo con https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html , hay: type __atomic_load_n (type *ptr, int memorder) y (el "genérico"): void __atomic_load (type *ptr, type *ret, int memorder) entonces void __atomic_store_n (type *ptr, type val, int memorder) y ("el genérico") void __atomic_store (type *ptr, type *val, int memorder) etc. ¿Qué es genérico en las últimas …

2
¿Cómo se implementa std :: atomic_ref para los tipos no atómicos?
Me pregunto cómo se std::atomic_refpuede implementar de manera eficiente (uno std::mutexpor objeto) para objetos no atómicos, ya que la siguiente propiedad parece bastante difícil de aplicar: Las operaciones atómicas aplicadas a un objeto a través de atomic_ref son atómicas con respecto a las operaciones atómicas aplicadas a través de cualquier …
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.