atomic_flag_test_and_set, atomic_flag_test_and_set_explicit
Определено в заголовке <stdatomic.h> |
||
|---|---|---|
_Bool atomic_flag_test_and_set( volatile atomic_flag* obj ); |
(1) | (с C11) |
_Bool atomic_flag_test_and_set_explicit( volatile atomic_flag* obj, memory_order order ); |
(2) | (с C11) |
Атомарно изменяет состояние atomic_flag, на который указывает obj, в установленное состояние (true) и возвращает предыдущее значение. Первая версия упорядочивает обращения к памяти в соответствии с memory_order_seq_cst, вторая версия — в соответствии с order.
Аргумент — указатель на атомарный флаг volatile, принимающий адреса как не-volatile, так и volatile (например, отображаемых в памяти I/O) атомарных флагов.
Параметры
| obj | - | указатель на объект атомарного флага для модификации |
| order | - | упорядочивание синхронизации памяти для данной операции: разрешены все значения |
Возвращаемое значение
Предыдущее значение, хранившееся в атомарном флаге, на который указывает obj.
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.17.8.1 Функции atomic_flag_test_and_set (с. 209)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.17.8.1 Функции atomic_flag_test_and_set (с. 285-286)
См. также
|
(C11) |
устанавливает атомарный флаг в ложь (функция) |
Документация C++ для atomic_flag_test_and_set, atomic_flag_test_and_set_explicit |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/atomic/atomic_flag_test_and_set