Atomic operations library
From cppreference.net
<
c
Если макроконстанта
__STDC_NO_ATOMICS__
(C11)
определена компилятором, заголовочный файл
<stdatomic.h>
, ключевое слово
_Atomic
и все перечисленные здесь имена не предоставляются.
Содержание |
Типы
|
Определено в заголовочном файле
<stdatomic.h>
|
|
|
(C11)
|
определяет ограничения упорядочения памяти
(enum) |
|
(C11)
|
lock-free атомный булевый флаг
(struct) |
Макросы
|
Определено в заголовочном файле
<stdatomic.h>
|
|
|
указывает, что данный атомарный тип является безблокировочным
(макроконстанта) |
|
|
(C11)
|
инициализирует новый
atomic_flag
(макроконстанта) |
|
(C11)
(устарело в C17)
(удалено в C23)
|
инициализирует новый атомарный объект
(функциональный макрос) |
|
(C11)
|
разрывает цепочку зависимостей для
memory_order_consume
(функциональный макрос) |
Функции
|
Определено в заголовочном файле
<stdatomic.h>
|
|
|
устанавливает atomic_flag в true и возвращает предыдущее значение
(функция) |
|
|
устанавливает atomic_flag в false
(функция) |
|
|
(C11)
|
инициализирует существующий атомарный объект
(функция) |
|
(C11)
|
указывает, является ли атомарный объект lock-free
(функция) |
|
сохраняет значение в атомарном объекте
(функция) |
|
|
читает значение из атомарного объекта
(функция) |
|
|
обменивает значение со значением атомарного объекта
(функция) |
|
|
обменивает значение с атомарным объектом, если старое значение соответствует ожидаемому, в противном случае читает старое значение
(функция) |
|
|
атомарное сложение
(функция) |
|
|
атомарное вычитание
(функция) |
|
|
атомарное побитовое ИЛИ
(функция) |
|
|
атомарное побитовое исключающее ИЛИ
(функция) |
|
|
атомарное побитовое И
(функция) |
|
|
(C11)
|
универсальный примитив синхронизации барьера, зависящий от порядка памяти
(функция) |
|
(C11)
|
барьер между потоком и обработчиком сигнала, выполняемым в том же потоке
(функция) |
Типы
Стандартная библиотека предоставляет удобные typedef-объявления для атомарных типов основного языка .
| Имя типа-псевдонима | Полное имя типа |
atomic_bool
|
_Atomic _Bool |
atomic_char
|
_Atomic char |
atomic_schar
|
_Atomic signed char |
atomic_uchar
|
_Atomic unsigned char |
atomic_short
|
_Atomic short |
atomic_ushort
|
_Atomic unsigned short |
atomic_int
|
_Atomic int |
atomic_uint
|
_Atomic unsigned int |
atomic_long
|
_Atomic long |
atomic_ulong
|
_Atomic unsigned long |
atomic_llong
|
_Atomic long long |
atomic_ullong
|
_Atomic unsigned long long |
atomic_char8_t
(C23)
|
_Atomic char8_t |
atomic_char16_t
|
_Atomic char16_t |
atomic_char32_t
|
_Atomic char32_t |
atomic_wchar_t
|
_Atomic wchar_t |
atomic_int_least8_t
|
_Atomic int_least8_t |
atomic_uint_least8_t
|
_Atomic uint_least8_t |
atomic_int_least16_t
|
_Atomic int_least16_t |
atomic_uint_least16_t
|
_Atomic uint_least16_t |
atomic_int_least32_t
|
_Atomic int_least32_t |
atomic_uint_least32_t
|
_Atomic uint_least32_t |
atomic_int_least64_t
|
_Atomic int_least64_t |
atomic_uint_least64_t
|
_Atomic uint_least64_t |
atomic_int_fast8_t
|
_Atomic int_fast8_t |
atomic_uint_fast8_t
|
_Atomic uint_fast8_t |
atomic_int_fast16_t
|
_Atomic int_fast16_t |
atomic_uint_fast16_t
|
_Atomic uint_fast16_t |
atomic_int_fast32_t
|
_Atomic int_fast32_t |
atomic_uint_fast32_t
|
_Atomic uint_fast32_t |
atomic_uint_fast32_t
|
_Atomic uint_fast32_t |
atomic_int_fast64_t
|
_Atomic int_fast64_t |
atomic_uint_fast64_t
|
_Atomic uint_fast64_t |
atomic_intptr_t
|
_Atomic intptr_t |
atomic_uintptr_t
|
_Atomic uintptr_t |
atomic_size_t
|
_Atomic size_t |
atomic_ptrdiff_t
|
_Atomic ptrdiff_t |
atomic_intmax_t
|
_Atomic intmax_t |
atomic_uintmax_t
|
_Atomic uintmax_t |
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 7.17 Атомарные операции <stdatomic.h> (стр.: TBD)
-
- 7.31.8 Атомарные операции <stdatomic.h> (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.17 Атомарные операции <stdatomic.h> (стр.: TBD)
-
- 7.31.8 Атомарные операции <stdatomic.h> (стр.: TBD)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.17 Атомарные операции <stdatomic.h> (стр: 273-286)
-
- 7.31.8 Атомарные операции <stdatomic.h> (стр: 455-456)
Смотрите также
|
C++ документация
для
Библиотека атомарных операций
|