Spec-Zone.ru › C

atomic_fetch_or, atomic_fetch_or_explicit

Определено в заголовке <stdatomic.h>
C atomic_fetch_or( volatile A* obj, M arg );
(1) (с C11)
C atomic_fetch_or_explicit( volatile A* obj, M arg, memory_order order );
(2) (с C11)

Атомарно заменяет значение, на которое указывает obj, результатом поразрядного ИЛИ между старым значением obj и arg, и возвращает значение obj , которое было ранее. Данная операция является операцией чтения-модификации-записи. Первый вариант упорядочивает обращения к памяти в соответствии с memory_order_seq_cst, второй вариант упорядочивает обращения к памяти в соответствии с order.

Это обобщённая функция, определённая для всех типов атомных объектов A. Аргумент — указатель на изменчивый атомный тип, который принимает адреса как неизменчивых, так и изменчивых (например, памяти с отображением ввода/вывода) атомных объектов, и семантика изменчивости сохраняется при применении этой операции к изменчивым атомным объектам. M является либо неатомным типом, соответствующим A , если A — атомный целочисленный тип, или ptrdiff_t , если A — атомный указатель.

Не определено, является ли имя обобщённой функции макросом или идентификатором, объявленным с внешней связью. Если определение макроса подавлено для доступа к фактической функции (например, заключено в скобки, как (atomic_fetch_or)(...)), или программа определяет внешний идентификатор с именем обобщённой функции, поведение не определено.

Параметры

obj - указатель на атомный объект, который требуется изменить
arg - значение, которое требуется побитово ИЛИ-соединить со значением, хранящимся в атомном объекте
order - порядок синхронизации памяти для этой операции: все значения разрешены

Возвращаемое значение

Значение, которое ранее хранилось в атомном объекте, на который указывает obj.

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.17.7.5 Обобщенные функции atomic_fetch и модификации (стр: 208)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.17.7.5 Обобщенные функции atomic_fetch и модификации (стр: 284-285)

См. также

atomic_fetch_andatomic_fetch_and_explicit
(C11)
атомарное побитовое И
(функция)
atomic_fetch_xoratomic_fetch_xor_explicit
(C11)
атомарное побитовое исключающее ИЛИ
(функция)
Документация C++ для atomic_fetch_or, atomic_fetch_or_explicit

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/atomic/atomic_fetch_or

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API