2010-11-14 136 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