# ATOMIC_*_LOCK_FREE

From cppreference.com
< c‎ | atomic

Defined in header `<stdatomic.h>` |  |

#define ATOMIC_BOOL_LOCK_FREE /* implementation-defined */

#define ATOMIC_CHAR_LOCK_FREE /* implementation-defined */
#define ATOMIC_CHAR16_T_LOCK_FREE /* implementation-defined */
#define ATOMIC_CHAR32_T_LOCK_FREE /* implementation-defined */
#define ATOMIC_WCHAR_T_LOCK_FREE /* implementation-defined */
#define ATOMIC_SHORT_LOCK_FREE /* implementation-defined */
#define ATOMIC_INT_LOCK_FREE /* implementation-defined */
#define ATOMIC_LONG_LOCK_FREE /* implementation-defined */
#define ATOMIC_LLONG_LOCK_FREE /* implementation-defined */

#define ATOMIC_POINTER_LOCK_FREE /* implementation-defined */

(since C11)

Expands to preprocessor constant expressions that evaluate to either `0`, `1`, or `2` which indicate the lock-free property of the corresponding atomic types (both signed and unsigned).

Value | Explanation
`0` | The atomic type is never lock-free
`1` | The atomic type is sometimes lock-free
`2` | The atomic type is always lock-free

### References

- C11 standard (ISO/IEC 9899:2011):

  - 7.17.1/3 atomic lock-free macros (p: 273)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/atomic/ATOMIC_LOCK_FREE_consts&oldid=77533"