提交 6fc6a8e4 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

template specializations for limited std::atomic<u128> support

上级 871863c7
...@@ -23,3 +23,30 @@ __cxa_pure_virtual(void) ...@@ -23,3 +23,30 @@ __cxa_pure_virtual(void)
{ {
panic("__cxa_pure_virtual"); panic("__cxa_pure_virtual");
} }
namespace std {
template<>
u128
atomic<u128>::load(memory_order __m) const
{
__sync_synchronize();
u128 v = _M_i;
__sync_synchronize();
return v;
}
template<>
bool
atomic<u128>::compare_exchange_weak(u128 &__i1, u128 i2, memory_order __m)
{
// XXX no __sync_val_compare_and_swap for u128
u128 o = __i1;
bool ok = __sync_bool_compare_and_swap(&_M_i, o, i2);
if (!ok)
__i1 = _M_i;
return ok;
}
};
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论