Changeset: fc03df08caa6 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/fc03df08caa6 Modified Files: common/utils/matomic.h Branch: default Log Message:
ATOMIC_GET returns an ATOMIC_BASE_TYPE. diffs (48 lines): diff --git a/common/utils/matomic.h b/common/utils/matomic.h --- a/common/utils/matomic.h +++ b/common/utils/matomic.h @@ -75,7 +75,7 @@ typedef volatile atomic_ulong ATOMIC_TYP #define ATOMIC_INIT(var, val) atomic_init(var, (ATOMIC_BASE_TYPE) (val)) #define ATOMIC_DESTROY(var) ((void) 0) -#define ATOMIC_GET(var) atomic_load(var) +#define ATOMIC_GET(var) ((ATOMIC_BASE_TYPE) atomic_load(var)) #define ATOMIC_SET(var, val) atomic_store(var, (ATOMIC_BASE_TYPE) (val)) #define ATOMIC_XCG(var, val) atomic_exchange(var, (ATOMIC_BASE_TYPE) (val)) #define ATOMIC_CAS(var, exp, des) atomic_compare_exchange_strong(var, exp, (ATOMIC_BASE_TYPE) (des)) @@ -134,7 +134,7 @@ typedef __declspec(align(8)) volatile AT #if SIZEOF_SIZE_T == 8 #ifdef __INTEL_COMPILER -#define ATOMIC_GET(var) _InterlockedExchangeAdd64(var, 0) +#define ATOMIC_GET(var) ((ATOMIC_BASE_TYPE) _InterlockedExchangeAdd64(var, 0)) #else #define ATOMIC_GET(var) (*(var)) /* should we use _InterlockedExchangeAdd64(var, 0) instead? */ @@ -162,7 +162,7 @@ ATOMIC_CAS(ATOMIC_TYPE *var, ATOMIC_BASE #else #ifdef DECLSPEC_NOINITALL -#define ATOMIC_GET(var) _InlineInterlockedExchangeAdd64(var, 0) +#define ATOMIC_GET(var) ((ATOMIC_BASE_TYPE) _InlineInterlockedExchangeAdd64(var, 0)) #define ATOMIC_SET(var, val) _InlineInterlockedExchange64(var, (ATOMIC_BASE_TYPE) (val)) #define ATOMIC_XCG(var, val) _InlineInterlockedExchange64(var, (ATOMIC_BASE_TYPE) (val)) #define ATOMIC_ADD(var, val) _InlineInterlockedExchangeAdd64(var, (ATOMIC_BASE_TYPE) (val)) @@ -172,7 +172,7 @@ ATOMIC_CAS(ATOMIC_TYPE *var, ATOMIC_BASE #define ATOMIC_OR(var, val) _InlineInterlockedOr64(var, (ATOMIC_BASE_TYPE) (val)) #define ATOMIC_AND(var, val) _InlineInterlockedAnd64(var, (ATOMIC_BASE_TYPE) (val)) #else -#define ATOMIC_GET(var) _InterlockedExchangeAdd64(var, 0) +#define ATOMIC_GET(var) ((ATOMIC_BASE_TYPE) _InterlockedExchangeAdd64(var, 0)) #define ATOMIC_SET(var, val) _InterlockedExchange64(var, (ATOMIC_BASE_TYPE) (val)) #define ATOMIC_XCG(var, val) _InterlockedExchange64(var, (ATOMIC_BASE_TYPE) (val)) #define ATOMIC_ADD(var, val) _InterlockedExchangeAdd64(var, (ATOMIC_BASE_TYPE) (val)) @@ -233,7 +233,7 @@ typedef volatile ATOMIC_BASE_TYPE ATOMIC #define ATOMIC_INIT(var, val) (*(var) = (val)) #define ATOMIC_DESTROY(var) ((void) 0) -#define ATOMIC_GET(var) __atomic_load_n(var, __ATOMIC_SEQ_CST) +#define ATOMIC_GET(var) ((ATOMIC_BASE_TYPE) __atomic_load_n(var, __ATOMIC_SEQ_CST)) #define ATOMIC_SET(var, val) __atomic_store_n(var, (ATOMIC_BASE_TYPE) (val), __ATOMIC_SEQ_CST) #define ATOMIC_XCG(var, val) __atomic_exchange_n(var, (ATOMIC_BASE_TYPE) (val), __ATOMIC_SEQ_CST) #define ATOMIC_CAS(var, exp, des) __atomic_compare_exchange_n(var, exp, (ATOMIC_BASE_TYPE) (des), false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
