Spec-Zone.ru › C

atomic_store, atomic_store_explicit

Определено в заголовочном файле <stdatomic.h>
void atomic_store( volatile A* obj , C desired );
(1) (с C11)
void atomic_store_explicit( volatile A* obj, C desired, memory_order order );
(2) (с C11)

Атомарно заменяет значение атомарной переменной, на которую указывает obj на desired. Операция является атомарной операцией записи.

Первый вариант упорядочивает обращения к памяти в соответствии с memory_order_seq_cst, второй вариант упорядочивает обращения к памяти в соответствии с order. order должно быть одним из memory_order_relaxed, memory_order_release или memory_order_seq_cst. В противном случае поведение не определено.

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

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

Параметры

obj - указатель на атомарный объект, который нужно изменить
order - порядок синхронизации памяти для этой операции

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

(ничего)

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.17.7.1 Обобщённые функции atomic_store (с. 206)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.17.7.1 Обобщённые функции atomic_store (с. 282)

См. также

atomic_loadatomic_load_explicit
(C11)
считывает значение из атомарного объекта
(функция)
Документация C++ для atomic_store, atomic_store_explicit

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

Spec-Zone.ru

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