Namespaces
Variants

atomic_fetch_or, atomic_fetch_or_explicit

From cppreference.net
Definido en el encabezado <stdatomic.h>
C atomic_fetch_or ( volatile A * obj, M arg ) ;
(1) (desde C11)
C atomic_fetch_or_explicit ( volatile A * obj, M arg, memory_order order ) ;
(2) (desde C11)

Reemplaza atómicamente el valor apuntado por obj con el resultado de la operación OR a nivel de bits entre el valor antiguo de obj y arg , y devuelve el valor que obj contenía previamente. La operación es de tipo lectura-modificación-escritura. La primera versión ordena los accesos a memoria según memory_order_seq_cst , la segunda versión ordena los accesos a memoria según order .

Esta es una función genérica definida para todos los tipos de objetos atómicos A . El argumento es un puntero a un tipo atómico volátil para aceptar direcciones de objetos atómicos tanto no volátiles como volátiles (por ejemplo, E/S mapeadas en memoria), y se preserva la semántica volátil cuando se aplica esta operación a objetos atómicos volátiles. M es o bien el tipo no atómico correspondiente a A si A es un tipo entero atómico, o ptrdiff_t si A es un tipo de puntero atómico.

No está especificado si el nombre de una función genérica es una macro o un identificador declarado con vinculación externa. Si se suprime una definición de macro para acceder a una función real (por ejemplo, entre paréntesis como ( atomic_fetch_or ) ( ... ) ), o un programa define un identificador externo con el nombre de una función genérica, el comportamiento no está definido.

Contenidos

Parámetros

obj - puntero al objeto atómico a modificar
arg - el valor para realizar OR bit a bit con el valor almacenado en el objeto atómico
order - el orden de sincronización de memoria para esta operación: se permiten todos los valores

Valor de retorno

El valor mantenido previamente por el objeto atómico apuntado por obj .

Referencias

  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.17.7.5 Las funciones genéricas atomic_fetch y modify (p: 208)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.17.7.5 Las funciones genéricas atomic_fetch y modify (p: 284-285)

Véase también

AND bitwise atómico
(función)
OR exclusivo bitwise atómico
(función)
Documentación de C++ para atomic_fetch_or , atomic_fetch_or_explicit