CMGDK r49-rc2
宏定义
K:/CMGDKv18/SDK/Source/SQL/MySQL/include/atomic/generic-msvc.h文件参考

浏览该文件的源代码。

宏定义

#define _atomic_h_cleanup_   "atomic/generic-msvc.h"
#define MY_ATOMIC_MODE   "msvc-intrinsics"
#define IL_EXCHG_ADD32(X, Y)   InterlockedExchangeAdd((volatile LONG *)(X),(Y))
#define IL_COMP_EXCHG32(X, Y, Z)   InterlockedCompareExchange((volatile LONG *)(X),(Y),(Z))
#define IL_COMP_EXCHGptr   InterlockedCompareExchangePointer
#define IL_EXCHG32(X, Y)   InterlockedExchange((volatile LONG *)(X),(Y))
#define IL_EXCHGptr   InterlockedExchangePointer
#define make_atomic_add_body(S)   v= IL_EXCHG_ADD ## S (a, v)
#define make_atomic_cas_body(S)
#define make_atomic_swap_body(S)   v= IL_EXCHG ## S (a, v)
#define make_atomic_load_body(S)
#define YIELD_LOOPS   200
#define LF_BACKOFF   my_yield_processor()

宏定义文档

#define _atomic_h_cleanup_   "atomic/generic-msvc.h"
#define IL_COMP_EXCHG32 (   X,
  Y,
 
)    InterlockedCompareExchange((volatile LONG *)(X),(Y),(Z))
#define IL_COMP_EXCHGptr   InterlockedCompareExchangePointer
#define IL_EXCHG32 (   X,
 
)    InterlockedExchange((volatile LONG *)(X),(Y))
#define IL_EXCHG_ADD32 (   X,
 
)    InterlockedExchangeAdd((volatile LONG *)(X),(Y))
#define IL_EXCHGptr   InterlockedExchangePointer
#define LF_BACKOFF   my_yield_processor()
#define make_atomic_add_body (   S)    v= IL_EXCHG_ADD ## S (a, v)
#define make_atomic_cas_body (   S)
值:
int ## S initial_cmp= *cmp;                                   \
  int ## S initial_a= IL_COMP_EXCHG ## S (a, set, initial_cmp); \
  if (!(ret= (initial_a == initial_cmp))) *cmp= initial_a;
#define make_atomic_load_body (   S)
值:
ret= 0; /* avoid compiler warning */ \
  ret= IL_COMP_EXCHG ## S (a, ret, ret);
#define make_atomic_swap_body (   S)    v= IL_EXCHG ## S (a, v)
#define MY_ATOMIC_MODE   "msvc-intrinsics"
#define YIELD_LOOPS   200
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义