Spec-Zone.ru › C

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)

См. также

atomic_storeatomic_store_explicit
(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

Spec-Zone.ru

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