Spec-Zone.ru › C

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)

См. также

atomic_flag_clearatomic_flag_clear_explicit
(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

Spec-Zone.ru

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