ah si il y a un moyen qui utilise l'instruction compare-and-swap x86.
En gros, tu fonctionnes avec un tableau pointeur sur des paquets de donné.
- Tu sauves la valeur de pointeur
- Tu sauves les données à modifier
- Tu modifies les données (ou tu les créait)
- Tu utilise le compare and swap sur la vieille valeur du pointeur et le pointeur, si il a changé retour au début
- sinon, tu a updaté le pointeur.
A prioris, tu ne peux pas perdre de cohérence avec ça. Si tu utilises le même algo partout pour l'acces aux donnés du tableau de pointeurs.
[^] # Re: MplayerXP fork de MPlayer avec support des threads
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Document sur le développement de mplayer. Évalué à 1.
En gros, tu fonctionnes avec un tableau pointeur sur des paquets de donné.
- Tu sauves la valeur de pointeur
- Tu sauves les données à modifier
- Tu modifies les données (ou tu les créait)
- Tu utilise le compare and swap sur la vieille valeur du pointeur et le pointeur, si il a changé retour au début
- sinon, tu a updaté le pointeur.
A prioris, tu ne peux pas perdre de cohérence avec ça. Si tu utilises le même algo partout pour l'acces aux donnés du tableau de pointeurs.
"La première sécurité est la liberté"