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: STDATOMIC

¿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

Inicialización de inicialización atómica.

Entonces, en mi código hay el fragmento: std::atomic<uint>* atomic_buffer = reinterpret_cast<><uint>*>(data); const size_t num_atomic_elements = svm_data_size / sizeof(std::atomic<uint>); for (i = 0; i < num_atomic_elements; i++) { std::atomic_init(&atomic_buffer[i], std::atomic<uint>(0)); } Sin embargo, al ejecutarlo, se devuelve el siguiente error: error: no se encuentra una función coincidente para ‘atomic_init’ … nota: . . . Read more

¿Existe alguna forma de tener una versión del método compare_exchange_strong de std::atomic que intercambie en caso de desigualdad?

Tengo un tipo atómico en el que necesito compararlo atómicamente con un valor, y si los dos valores no son iguales, intercambiar el valor del atómico. En otras palabras, donde compare_exchange_strong básicamente realiza esta operación atómicamente: if (atomic_value == expected) atomic_value = desired; …Estoy buscando una forma de hacer esto: . . . Read more