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
.
Аргумент является указателем на изменчивый атомарный флаг для приёма адресов как не-изменчивых, так и изменчивых (например, отображаемых в память 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)
Смотрите также
|
устанавливает atomic_flag в false
(функция) |
|
|
Документация C++
для
atomic_flag_test_and_set
,
atomic_flag_test_and_set_explicit
|
|