2010-11-14 627 views
0

我一直在试图找到在哪里以及如何实现Qt的引用计数。 QBasicAtomicInt和QAtomicInt使用ref()和deref()函数,它们提供了一个有效的引用计数API。这些函数以原子方式递增和递减值,但函数库中实现了这些函数的位置?我想了解Qt究竟是如何实现原子引用计数的。谢谢。Qt原子操作实现

回答

6

原子操作无法在纯C++中实现,因此它们直接在每个特定处理器体系结构的汇编中实现。

下面是x86处理器为Qt的原子操作来源:http://qt.gitorious.org/qt/qt/blobs/4.7/src/corelib/arch/i386/qatomic_i386.s

+0

真棒这就是我一直在寻找的文件。我已经从你发布的链接中搜索了我的Qt/include目录中的一些关键字,并且找到了包含ref()和deref()函数定义的文件Qt/include/QtCore/qatomic_i386.h。我知道他们不能用C++实现,他们是用扩展的asm实现的,但我试图找到他们实现的地方。谢谢凯尔。 – blueskin 2010-11-14 22:38:48