## Description

bool atomic_flag_test_and_set(
volatile atomic_flag *object)

bool atomic_flag_test_and_set_explicit(
volatile atomic_flag *object,
memory_order order)

bool atomic_flag_test_and_set_explicit(
volatile atomic_flag *object,
memory_order order,
memory_scope scope)

Atomically sets the value pointed to by object to true. Memory is affected according to the value of order. These operations are atomic read-modify-write operations (as defined by section 5.1.2.4 of the C11 Specification). Returns atomically the value of the object immediately before the effects.