#include <stdatomic.h>
Ces macros indiquent si les opérations d'une famille de types atomiques sont lock-free. La valeur 0 signifie
jamais lock-free, 1 parfois lock-free et 2 toujours lock-free.
| Macro | Signification |
|---|---|
ATOMIC_BOOL_LOCK_FREE |
Valeur 0, 1 ou 2. |
ATOMIC_CHAR_LOCK_FREE |
Valeur 0, 1 ou 2. |
ATOMIC_CHAR16_T_LOCK_FREE |
Valeur 0, 1 ou 2. |
ATOMIC_CHAR32_T_LOCK_FREE |
Valeur 0, 1 ou 2. |
ATOMIC_WCHAR_T_LOCK_FREE |
Valeur 0, 1 ou 2. |
ATOMIC_SHORT_LOCK_FREE |
Valeur 0, 1 ou 2. |
ATOMIC_INT_LOCK_FREE |
Valeur 0, 1 ou 2. |
ATOMIC_LONG_LOCK_FREE |
Valeur 0, 1 ou 2. |
ATOMIC_LLONG_LOCK_FREE |
Valeur 0, 1 ou 2. |
ATOMIC_POINTER_LOCK_FREE |
Valeur 0, 1 ou 2. |
L'exemple suivant affiche les garanties lock-free pour quelques types courants.
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <stdatomic.h> #include <stdio.h> #include <stdlib.h> int main() { printf( "int : %d\n", ATOMIC_INT_LOCK_FREE ); printf( "long : %d\n", ATOMIC_LONG_LOCK_FREE ); printf( "pointer : %d\n", ATOMIC_POINTER_LOCK_FREE ); return EXIT_SUCCESS; } |
Les valeurs exactes dépendent de la plate-forme.
int : 2 long : 2 pointer : 2
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :