Resultados de la búsqueda a petición "stdatomic"

4 la respuesta

¿Es necesario usar std :: atomic para indicar que un hilo ha finalizado su ejecución?

Me gustaría comprobar si un

1 la respuesta

Problema con std :: atomic_flag con el subproceso de trabajo

perdón por la verbosidad: hice todo lo posible para condensar mi muestra de código en una clase mínimamente funcional ymain() método. Estoy tratando de usar unatomic_flag notificar_rx() dentro de mi hilo de trabajo para dejar de fumar ...

3 la respuesta

¿Dónde está el bloqueo para un std :: atomic?

Si una estructura de datos tiene múltiples elementos, la versión atómica no puede (siempre) estar libre de bloqueos. Me dijeron que esto es cierto para los tipos más grandes porque la CPU no puede cambiar atómicamente los datos sin usar algún ...

2 la respuesta

Error de "Uso de la función eliminada" con std :: atomic_int

Quiero usar unstd::atomic_int variable. En mi código, tengo: #include <atomic> std::atomic_int stop = 0; int main() { // Do something }Y esto me da un error de compilación: use of deleted function ...

1 la respuesta

Adquirir / liberar semántica con almacenes no temporales en x64

Tengo algo como: if (f = acquire_load() == ) { ... use Foo }y: auto f = new Foo(); release_store(f)Podrías imaginar fácilmente una implementación de adquirir_carga y liberar_almacén que usa atómico con carga (memory_order_acquire) y store ...

1 la respuesta

Modelo de memoria C ++: ¿se sincronizan las cargas seq_cst con las tiendas seq_cst?

En el modelo de memoria C ++, hay un orden total en todas las cargas y almacenes de todas las operaciones secuenciales consistentes. Me pregunto cómo interactúa esto con operaciones que tienen otros ordenamientos de memoria que se ...

3 la respuesta

¿Por qué g ++ todavía requiere -latomic

En29.5 Tipos atómicos del borrador de trabajo estándar de C ++ de noviembre de 2014 que dice: Hay una plantilla de clase genérica atómica. El tipo de argumento de plantilla T será trivialmente copiable (3.9). [Nota: los argumentos de tipo que no ...

2 la respuesta

¿Por qué solo std :: atomic_flag está garantizado para estar libre de bloqueo?

De la concurrencia de C ++ en acción: La diferencia entre std :: atomic y std :: atomic_flag es que std :: atomic puede no estar libre de bloqueo; la implementación puede tener que adquirir un mutex internamente para garantizar la atomicidad de ...

2 la respuesta

GCC reordenando a través de la carga con `memory_order_seq_cst`. ¿Esto está permitido?

Usando una versión simplificada de un básicoseqlock [https://en.wikipedia.org/wiki/Seqlock], gcc reordena una carga no atómica a través de un atómicoload(memory_order_seq_cst) al compilar el código con-O3. Este reordenamiento no se observa al ...