ATOMIC_IS_LOCK_FREE(3) Library Functions Manual ATOMIC_IS_LOCK_FREE(3)

atomic_is_lock_freeindicate whether or not atomic operations are lock-free

#include <stdatomic.h>

_Bool atomic_is_lock_free(const volatile A *obj);

The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-2024 defers to the ISO C standard.

Implementations that define the macro __STDC_NO_ATOMICS__ need not provide the <stdatomic.h> header nor support these generic functions.

The atomic_is_lock_free () generic function shall indicate whether or not atomic operations on objects of the type pointed to by obj are lock-free; obj can be a null pointer.

The atomic_is_lock_free () generic function shall return a non-zero value if and only if atomic operations on objects of the type pointed to by obj are lock-free. During the lifetime of the calling process, the result of the lock-free query shall be consistent for all pointers of the same type.

No errors are defined.

None.

None.

Operations that are lock-free should also be address-free. That is, atomic operations on the same memory location via two different addresses will communicate atomically. The implementation should not depend on any per-process state. This restriction enables communication via memory mapped into a process more than once and memory shared between two processes.

None.

XBD <stdatomic.h>

First released in Issue 8. Included for alignment with the ISO/IEC 9899:2018 standard.

June 14, 2024 posix.fail