Namespaces
Variants

atomic_flag_test_and_set, atomic_flag_test_and_set_explicit

From cppreference.net
Определено в заголовочном файле <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