2
__sync_val_compare_and_swap功能的替代我已經在我的項目下面的方法:舊的gcc編譯器
long compare(long* avar, long comp, long exc)
{
return __sync_val_compare_and_swap(avar, comp, exc);
}
但是,如果我想編譯使用的版本的GCC(舊版本,3.4.3爲例)我的項目不支持AtomicBuiltins解決方案的替代路徑是什麼?什麼樣的替代函數(替代__sync_val_compare_and_swap)或我們可以使用的函數塊而不是__sync_val_compare_and_swap?
簡單而有禮貌的方法是使用內聯asm來處理您認識並正式支持的arch,並且回退到所有其他gcc 4擴展。這樣任何人都可以使用你的程序,不管他們的系統多麼模糊,只要他們願意使用一個足夠現代的編譯器。 –