2010-11-14 27 views
0

J'ai essayé de trouver où et comment le comptage de référence pour Qt est implémenté. QBasicAtomicInt et QAtomicInt utilisent les fonctions ref() et deref() qui fournissent une API de comptage de référence efficace. Ces fonctions incrémentent et décrémentent atomiquement la valeur mais où sont ces fonctions implémentées dans la bibliothèque? J'essaie de comprendre comment exactement Qt implémente le comptage des références atomiques. Je vous remercie.Qt implémentation des opérations atomiques

Répondre

6

Les opérations atomiques ne peuvent pas être réalisées en C++ simple, elles sont donc implémentées directement dans l'assemblage pour chaque architecture de processeur spécifique.

Voici la source pour les opérations atomiques de Qt pour les processeurs x86: http://qt.gitorious.org/qt/qt/blobs/4.7/src/corelib/arch/i386/qatomic_i386.s

+0

impressionnant qui est le fichier que je cherchais. J'ai recherché dans mon répertoire Qt/include certains mots clés du lien que vous avez posté et j'ai trouvé le fichier Qt/include/QtCore/qatomic_i386.h qui contient la définition des fonctions ref() et deref(). Et je savais qu'ils ne pouvaient pas être implémentés en C++ et qu'ils étaient implémentés en utilisant asm étendu mais j'essayais de trouver où ils étaient implémentés. Merci Kyle. – blueskin