01 2014 档案

atomic_compare_exchange
摘要:atomic_compare_exchange 分为两个版本 atomic_compare_exchange_strong 和 atomic_compare_exchange_weak,语义如下bool atomic_compare_exchange( volatile A *obj, C* expected, C desired, memory_order succ, memory_order fail );{ fence_before(succ); // fence 1 if(*obj == expected) { *obj = desired; ... 阅读全文

posted @ 2014-01-16 11:16 JesseFang 阅读(4481) 评论(1) 推荐(0)

read write spinlock
摘要:发一个自己基于 C++11 写的 read write spinlock,在 MinGW 4.8.2 (gcc 4.8 全面支持c++ 11,但由于gcc windows平台 libstdc++ 目前还不支持 thread,所以用 boost 1.49 及以上版本作为thread库)。目前在 Xeon E5606 (4核8线程) Win2008 x64平台上测试通过,但还需要在内存弱序的arm上做进一步测试。代码 spinlock.cpp:#include#include#define SPIN_LOCK_UNLOCK 0#define SPIN_LOCK_WRITE_LOCK -1using 阅读全文

posted @ 2014-01-15 17:51 JesseFang 阅读(635) 评论(0) 推荐(0)