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

10 la respuesta

Es un uso correcto de Thread.MemoryBarrier ()?

Supongo que tengo un campo que controla la ejecución de algún bucle: private static bool shouldRun = true;Y tengo un hilo en ejecución, que tiene un código como: while(shouldRun) { // Do some work .... Thread.MemoryBarrier(); } Ahora, ...

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

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

2 la respuesta

¿Está LFENCE serializando en procesadores AMD?

n documentos recientes de Intel ISA, ellfencea instrucción @ se ha definido comoserializando el flujo de instrucciones (evitando la ejecución fuera de orden en él). En particular, ladescripció [http://felixcloutier.com/x86/LFENCE.html] de la ...

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

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:

1 la respuesta

as instrucciones de DMB se pueden omitir de forma segura en ARM Cortex M4

stoy revisando el ensamblaje generado por GCC para un ARM Cortex M4, y noté queatomic_compare_exchange_weak obtiene dosDMB instrucciones insertadas alrededor de la condición (compiladas con GCC 4.9 usando-std=gnu11 -O2): // if ...

2 la respuesta

¿Por qué se puede implementar MemoryBarrier como una llamada a xchg?

en msdnhttp://msdn.microsoft.com/en-us/library/windows/desktop/ms684208(v=vs.85).aspx, MemoryBarrier se implementa como una llamada a xchg.

2 la respuesta

¿Por qué necesito una barrera de memoria?

C # 4 en una cáscara de nuez (por cierto muy recomendable) utiliza el siguiente código para demostrar el concepto de MemoryBarrier (suponiendo que A y B se ejecuten en diferentes subprocesos): class Foo{ int _answer; bool complete; void A(){ ...

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