gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作。其声明如下:// 返回运算之前的值,*ptr指向参加运算的值,value是第二个操作的值type__sync_fetch_and_add(type*ptr,typevalue,...)type__s...
分类:
其他好文 时间:
2014-11-02 19:31:16
阅读次数:
145
最近在用户态下突然需要用到原子变量,又不想自己编译boost,思来索去,无意中竟发现gcc还有这一组内置函数. //先做操作,再返回变化后的值
type?__sync_fetch_and_add?(type?*ptr,?type?value);
typ...
分类:
其他好文 时间:
2014-10-03 15:11:55
阅读次数:
191
学习云风的skynet源代码,简单记录下。void skynet_globalmq_push(struct message_queue * queue) { struct global_queue *q= Q; uint32_t tail = GP(__sync_fetch_and_add(&q->...
分类:
Web程序 时间:
2014-09-06 17:24:23
阅读次数:
228
学习云风的skynet源码,简单记录下。
void
skynet_globalmq_push(struct message_queue * queue) {
struct global_queue *q= Q;
uint32_t tail = GP(__sync_fetch_and_add(&q->tail,1));
// only one thread can set the sl...
分类:
Web程序 时间:
2014-08-25 21:11:04
阅读次数:
499
type __sync_fetch_and_add (type *ptr, type value, ...) type __sync_fetch_and_sub (type *ptr, type value, ...) type __sync_fetch_and_or (type *ptr, type value, ...) type __sync_fetch_and_and (type *...
分类:
其他好文 时间:
2014-07-22 09:00:07
阅读次数:
163