Question

Je sais que les sorties de modèles similaires dans TBB Intel, en plus que je ne peux pas trouver une application sur Google ou dans la bibliothèque Boost.

Était-ce utile?

La solution

Vous trouverez des discussions au sujet de cette mise en œuvre des fonctionnalités là-dedans boost: http: //lists.boost.org/Archives/boost/2008/11/144803.php

  

> Peut-N2427 - C ++ Types et opérations atomiques mise en œuvre

     

> sans l'aide du compilateur?

     

Non.

     

Ils ne doivent pas nécessairement être intrinsics si vous pouvez écrire assembleur en ligne (ou assembleur compilé séparément pour   cette question), vous pouvez écrire le   les opérations elles-mêmes directement. Toi   pourrait même être en mesure d'utiliser de simples C ++   (Affectation par exemple tout simplement pour la charge   ou magasin). La raison pour laquelle vous avez besoin   support du compilateur empêche   optimisations inappropriés: atomique   les opérations ne peuvent pas être optimisés sur et   doit généralement pas reclassé   avant ou après toute autre opération.   Cela signifie que même non-atomique   magasins effectuées avant un atomique   magasin doivent être complets, et ne peut   être mis en cache dans un registre (par exemple).   , Les charges qui se produisent également après une   opération atomique ne peut être hissée   avant l'op atomique. Sur quelques   compilateurs, tout en utilisant assembleur en ligne   est assez. Sur d'autres, appelant une   fonction externe est suffisante. MSVC   fournit   _ReadWriteBarrier () pour fournir la commande du compilateur. D'autres compilateurs   besoin d'autres drapeaux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top