Spinlock Verrou tournant
Un verrou qui attend en tournant en boucle et en redemandant — il brûle du CPU au lieu de dormir.
Endormir un thread puis le réveiller coûte des commutations de contexte. Si la section critique est plus courte que ce coût, mieux vaut simplement attendre activement. Les spinlocks sont donc la norme à l'intérieur du noyau, où les sections tiennent souvent en quelques instructions.
Deux choses les rendent dangereux. Sur une machine monocœur, un spinlock n'a aucun sens tant que le détenteur du verrou ne peut pas s'exécuter en parallèle — la boucle bloque précisément le processus qu'on attend. Et en espace utilisateur, l'ordonnanceur peut retirer le processeur au détenteur à tout moment, après quoi les threads en attente brûlent leurs tranches de temps entières à tourner. On y utilise donc un mutex, qui emprunte de toute façon le chemin rapide via futex.