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)
См. также
|
(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