es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tag: MEMORY-BARRIERS

¿Puede atomic_thread_fence(acquire) evitar que las cargas anteriores se reordenen después de sí misma?

Entiendo que atomic_thread_fence en C++ es bastante diferente a las acciones de almacenamiento/carga atómicos, y no es una buena práctica tratar de interpretarlas en términos de las instrucciones mfence/lfence/sfence de la CPU (tal vez x86). Si uso c.load(memory_order_acquire), ninguna acción de almacenamiento/carga después de c.load podrá ser reordenada antes de . . . Read more

¿Cómo anoto las cercas atómicas seq-cst para el thread sanitizer?

Aprendí que TSAN no comprende std::atomic_thread_fence, y para solucionarlo, debes decirle a TSAN qué variables atómicas se ven afectadas por la barrera, colocando __tsan_acquire(void *) y __tsan_release(void *) junto a ella (para las barreras de adquisición y liberación respectivamente). Pero, ¿qué pasa con las barreras de orden de secuencia consistente? . . . Read more

Comprensión de los ordenamientos de memoria en C++

Mientras trataba de entender los órdenes de memoria, me encontré con este video. El video afirma que la afirmación al final de la función principal puede fallar, pero no entiendo por qué o si esto es correcto. Lo que entiendo de std::memory_order_release es que ninguna lectura o escritura en el . . . Read more