ATOMIC_*_LOCK_FREE
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовочном файле
<stdatomic.h>
|
||
|
#define ATOMIC_BOOL_LOCK_FREE /* определяется реализацией */
#define ATOMIC_CHAR_LOCK_FREE /* определяется реализацией */
|
(начиная с C11) | |
|
#define ATOMIC_CHAR8_T_LOCK_FREE /* определяется реализацией */
|
(начиная с C23) | |
Раскрывается в
препроцессорные константные выражения
, которые вычисляются в
0
,
1
или
2
, указывающие на свойство отсутствия блокировок соответствующих
атомарных типов
(как знаковых, так и беззнаковых).
| Значение | Объяснение |
0
|
Атомарный тип никогда не является lock-free |
1
|
Атомарный тип иногда является lock-free |
2
|
Атомарный тип всегда является lock-free |
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.17.1/3 макросы атомарной lock-free реализации (стр: 200)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.17.1/3 макросы атомарной lock-free реализации (стр: 273)