Boucle atomique.... ??? Mais pourquoi aurait-elle besoin d'être atomique ?
C'est marrant c'est exactement la question que je me posais. Donc ton spinlock atomique sur processeurs récents on est d'accord tous les deux pour dire que ça ne veux rien dire (vu que spinlock => boucle)
2. Après un test and set réussi, le lock est pris !
J'ai l'impression que tu te perds. dans l'ordre :
a) un spinlock n'est pas un lock. C'est un retry constant d'une opération sur une ressource. Dès que l'opération passe , le spinlock se termine, la ressources peut être lue/écrite/modifiée sans jamais avoir été lockée. Même si le test qui permet de savoir que le spinlock c'est terminé se déroule plus tard.
b) On peut utiliser un spinlock pour faire comme opération atomique un lock. Mais autant faire l'opération de lock directement et récupérer le résultat (erreur ou OK). Ca revient exactement au même vu que la pose d'un lock est une opération atomique.
[^] # Re: vs POSIX shared memory, read-only
Posté par Jerome Herman . En réponse à la dépêche PTT : un outil de trace pour la NPTL. Évalué à 2.
C'est marrant c'est exactement la question que je me posais. Donc ton spinlock atomique sur processeurs récents on est d'accord tous les deux pour dire que ça ne veux rien dire (vu que spinlock => boucle)
2. Après un test and set réussi, le lock est pris !
J'ai l'impression que tu te perds. dans l'ordre :
a) un spinlock n'est pas un lock. C'est un retry constant d'une opération sur une ressource. Dès que l'opération passe , le spinlock se termine, la ressources peut être lue/écrite/modifiée sans jamais avoir été lockée. Même si le test qui permet de savoir que le spinlock c'est terminé se déroule plus tard.
b) On peut utiliser un spinlock pour faire comme opération atomique un lock. Mais autant faire l'opération de lock directement et récupérer le résultat (erreur ou OK). Ca revient exactement au même vu que la pose d'un lock est une opération atomique.