Spec-Zone.ru › C

ATOMIC_*_LOCK_FREE

Определено в заголовке <stdatomic.h>
#define ATOMIC_BOOL_LOCK_FREE     /* implementation-defined */
#define ATOMIC_CHAR_LOCK_FREE     /* implementation-defined */
#define ATOMIC_CHAR16_T_LOCK_FREE /* implementation-defined */
#define ATOMIC_CHAR32_T_LOCK_FREE /* implementation-defined */
#define ATOMIC_WCHAR_T_LOCK_FREE  /* implementation-defined */
#define ATOMIC_SHORT_LOCK_FREE    /* implementation-defined */
#define ATOMIC_INT_LOCK_FREE      /* implementation-defined */
#define ATOMIC_LONG_LOCK_FREE     /* implementation-defined */
#define ATOMIC_LLONG_LOCK_FREE    /* implementation-defined */
#define ATOMIC_POINTER_LOCK_FREE  /* implementation-defined */
(с C11)
#define ATOMIC_CHAR8_T_LOCK_FREE  /* implementation-defined */
(с C23)

Расширяется до препроцессорных константных выражений, которые вычисляются как 0, 1, или 2, что указывает на свойство отсутствия блокировки соответствующих атомных типов (как со знаком, так и без знака).

Значение Объяснение
0 Атомный тип никогда не является безблокировочным
1 Атомный тип иногда является безблокировочным
2 Атомный тип всегда является безблокировочным

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.17.1/3 макросы атомарных безблокировочных операций (стр. 200)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.17.1/3 макросы атомарных безблокировочных операций (стр. 273)

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

Spec-Zone.ru

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