Hep au fait, Briaeros007. Tu te souviens du long fil où nous étions empoignés à propos de l'attente active sur une variable volatile ? J'ai enfin eu le fin mot de l'histoire. Nous avions tous les deux raisons (enfin j'avais un peu plus tort, vu que je n'avais raison que sur mon cas particulier).
Donc, quand on déclare une variable « volatile » sur Itanium 2, en pratique le compilateur génère des instructions qui garantissent que l'ordre d'accès des lectures et écritures est conservé (en gros, il s'agit d'une sorte de « acquire » suivi d'un « release »), ce qui permet de faire du busy wait bête et méchant (évidemment, ça n'empêche pas d'affamer des threads en cas d'activation de l'hyperthreading sur montecito).
[^] # HS, mais ça concerne les machines parallèles, quelque part
Posté par lasher . En réponse à la dépêche Le Cray XT-5 entièrement sous Linux. Évalué à 3.
Donc, quand on déclare une variable « volatile » sur Itanium 2, en pratique le compilateur génère des instructions qui garantissent que l'ordre d'accès des lectures et écritures est conservé (en gros, il s'agit d'une sorte de « acquire » suivi d'un « release »), ce qui permet de faire du busy wait bête et méchant (évidemment, ça n'empêche pas d'affamer des threads en cas d'activation de l'hyperthreading sur montecito).