TacOS  0.2
 Tout Structures de données Fichiers Fonctions Variables Définitions de type Énumérations Macros
spinlock.h
Aller à la documentation de ce fichier.
1 
29 #ifndef _SPINLOCK_H
30 #define _SPINLOCK_H
31 
32 /* XXX Attention, cette implementation du spinlock est MAUVAISE:
33  * while(lock);
34  * lock=1;
35  * n'est pas atomique, le process peut donc etre preempte apres
36  * le while, mais avant l'assignation, et il est donc possible
37  * qu'un autre process passe le while en meme temps. */
38 
39 #define CREATE_SPINLOCK(LOCK) static unsigned char LOCK = 0
40 #define SPINLOCK(LOCK) while(LOCK);LOCK=1
41 #define SPINUNLOCK(LOCK) LOCK=0
42 
43 #endif /* _SPINLOCK_H */