atomic_load, atomic_load_explicit
Определено в заголовочном файле <stdatomic.h> |
||
|---|---|---|
C atomic_load( const volatile A* obj ); |
(1) | (с C11) |
C atomic_load_explicit( const volatile A* obj, memory_order order ); |
(2) | (с C11) |
Атомарно загружает и возвращает текущее значение атомной переменной, на которую указывает obj. Операция является атомарной операцией чтения.
Первый вариант упорядочивает обращения к памяти согласно memory_order_seq_cst, второй вариант упорядочивает обращения к памяти согласно order. order должно быть одним из значений memory_order_relaxed, memory_order_consume, memory_order_acquire или memory_order_seq_cst. В противном случае поведение не определено.
Это общая функция, определенная для всех типов атомных объектов A. Аргументом является указатель на переменную типа volatile атомного типа, для приема адресов как не-volatile, так и volatile (например, памяти с отображением ввода/вывода) атомных объектов, и семантика volatile сохраняется при применении этой операции к volatile атомным объектам. C — это не-атомный тип, соответствующий A.
Не определено, является ли имя общей функции макросом или идентификатором, объявленным с внешней связью. Если определение макроса подавлено для доступа к фактической функции (например, в скобках, как (atomic_load)(...)), или программа определяет внешний идентификатор с именем общей функции, поведение не определено.
Параметры
| obj | - | указатель на атомный объект для доступа |
| order | - | порядок синхронизации памяти для данной операции |
Значение результата
Текущее значение атомной переменной, на которую указывает obj.
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.17.7.2 Общие функции atomic_load (с. 206)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.17.7.2 Общие функции atomic_load (с. 282)
См. также
|
(C11) |
сохраняет значение в атомном объекте (функция) |
Документация C++ для atomic_load, atomic_load_explicit |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/atomic/atomic_load