Resultados de la búsqueda a petición "memory-barriers"

2 la respuesta

Cómo funciona std :: memory_order_seq_cst

Tomé el ejemplo sobre std :: memory_order_seq_cst de: http://en.cppreference.com/w/cpp/atomic/memory_order [http://en.cppreference.com/w/cpp/atomic/memory_order] #include <thread> #include <atomic> #include <cassert> std::atomic<bool> x ...

1 la respuesta

¿`Xchg` abarca` mfence` suponiendo que no hay instrucciones no temporales?

Ya he vistoesta respuesta [https://stackoverflow.com/a/50279772/391161] yesta respuesta [https://stackoverflow.com/a/19099164/391161], pero ninguno parece claro y explícito sobre la equivalencia o no equivalencia demfence yxchg bajo el supuesto ...

2 la respuesta

Atomicidad en x86

8.1.2 Bloqueo de busLos procesadores Intel 64 e IA-32 proporcionan una señal LOCK # que se activa automáticamente durante ciertas operaciones críticas de memoria para bloquear el bus del sistema o un enlace equivalente. Mientras se afirma esta ...

1 la respuesta

Análisis de la salida x86 generada por JIT en el contexto de volátiles

Estoy escribiendo esta publicación en relación conProfundo conocimiento de volátiles en Java [https://stackoverflow.com/questions/45133832/deep-understanding-of-volatile-in-java] public class Main { private int x; private volatile int g; public ...

1 la respuesta

¿Es std :: mutex secuencialmente consistente?

Digamos que tengo dos hilosA yB escribir en una variable booleana globalfA yfB respectivamente, que inicialmente se establecen enfalse y están protegidos porstd::mutex objetosmA ymB respectivamente: // Thread A mA.lock(); assert( fA == false ); ...

1 la respuesta

La barrera de la memoria actúa como marcador y como instrucción?

He leído diferentes cosas sobre cómo funciona una barrera de memoria. Por ejemplo, el usuario Johana respuesta de @ enesta ...

1 la respuesta

¿Hay una barrera de memoria implícita con relación sincronizada con thread :: join?

Tengo un código en el trabajo que inicia varios subprocesos que realizan algunas operaciones y, si alguno de ellos falla, configuran la variable compartida enfalso. Luego, el hilo principal se une a todos los hilos de trabajo. La simulación ...

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 ...

2 la respuesta

¿Cómo se usa una barrera de memoria en el núcleo de Linux?

Hay una ilustración en la fuente del kernel Documentation / memory-doors.txt, como esta:

5 la respuesta

¿Por qué el patrón estándar de invocación de eventos C # es seguro para subprocesos sin una barrera de memoria o invalidación de caché? ¿Qué pasa con el código similar?

En C #, este es el código estándar para invocar un evento de manera segura para subprocesos: var handler = SomethingHappened; if(handler != null) handler(this, e);Donde, potencialmente en otro hilo, el método add generado por el ...