Spec-Zone.ru › C

atomic_init

Определено в заголовке <stdatomic.h>
void atomic_init( volatile A* obj, C desired );
(с C11)

Инициализирует объект атомарного типа, созданный по умолчанию, со значением desired. Функция не является атомарной: одновременный доступ из другого потока, даже через атомарную операцию, является гонкой данных.

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

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

Параметры

obj - указатель на атомарный объект, подлежащий инициализации
desired - значение, которым необходимо инициализировать атомарный объект

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

(не используется)

Примечания

atomic_init — единственный способ динамической инициализации атомарных объектов. Например:

_Atomic int *p = malloc(sizeof(_Atomic int));
atomic_init(p, 42);

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2023):
    • 7.17.2.2 Общая функция atomic_init (стр.: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.17.2.2 Общая функция atomic_init (стр.: 201)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.17.2.2 Общая функция atomic_init (стр.: 274-275)

См. также

ATOMIC_VAR_INIT
(C11)(устарело в C17)(удалено в C23)
инициализирует новый атомарный объект
(функция-макрос)
Документация C++ для atomic_init

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

Spec-Zone.ru

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