Changeset: a558dd65cf06 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a558dd65cf06 Modified Files: gdk/gdk_atomic.h Branch: Feb2013 Log Message:
(hopefully) fixing compilation with ICC on Windows after changeset 6f3dfd3b529e: first handle Windows (regardless of compiler --- Intel or Microsoft), before handling GNU & Intel compilers on non-Windows systems diffs (51 lines): diff --git a/gdk/gdk_atomic.h b/gdk/gdk_atomic.h --- a/gdk/gdk_atomic.h +++ b/gdk/gdk_atomic.h @@ -20,23 +20,7 @@ #ifndef _GDK_ATOMIC_H_ #define _GDK_ATOMIC_H_ -#if defined(__GNUC__) || defined(__INTEL_COMPILER) -#if SIZEOF_SSIZE_T == SIZEOF_LONG_LONG -#define ATOMIC_TYPE long long -#else -#define ATOMIC_TYPE long -#endif -#define ATOMIC_ADD(var, val) __sync_fetch_and_add(&var, (ATOMIC_TYPE) (val)) -#define ATOMIC_INC(var) __sync_add_and_fetch(&var, (ATOMIC_TYPE) 1) -#define ATOMIC_SUB(var, val) __sync_fetch_and_sub(&var, (ATOMIC_TYPE) (val)) -#define ATOMIC_DEC(var) __sync_sub_and_fetch(&var, (ATOMIC_TYPE) 1) -#define ATOMIC_START(lock, func) -#define ATOMIC_END(lock, func) -#define ATOMIC_INIT(lock, func) -#define ATOMIC_COMP_SWAP(var, old, new, lock, func) \ - __sync_val_compare_and_swap(&var, old, new) -#define ATOMIC_GET(var, lock, func) var -#elif defined(_MSC_VER) +#if defined(_MSC_VER) #include <intrin.h> #if SIZEOF_SSIZE_T == SIZEOF___INT64 #define ATOMIC_TYPE __int64 @@ -64,6 +48,22 @@ _InterlockedCompareExchange(&var, new, old) #pragma intrinsic(_InterlockedCompareExchange) #define ATOMIC_GET(var, lock, func) var +#elif defined(__GNUC__) || defined(__INTEL_COMPILER) +#if SIZEOF_SSIZE_T == SIZEOF_LONG_LONG +#define ATOMIC_TYPE long long +#else +#define ATOMIC_TYPE long +#endif +#define ATOMIC_ADD(var, val) __sync_fetch_and_add(&var, (ATOMIC_TYPE) (val)) +#define ATOMIC_INC(var) __sync_add_and_fetch(&var, (ATOMIC_TYPE) 1) +#define ATOMIC_SUB(var, val) __sync_fetch_and_sub(&var, (ATOMIC_TYPE) (val)) +#define ATOMIC_DEC(var) __sync_sub_and_fetch(&var, (ATOMIC_TYPE) 1) +#define ATOMIC_START(lock, func) +#define ATOMIC_END(lock, func) +#define ATOMIC_INIT(lock, func) +#define ATOMIC_COMP_SWAP(var, old, new, lock, func) \ + __sync_val_compare_and_swap(&var, old, new) +#define ATOMIC_GET(var, lock, func) var #else #define ATOMIC_LOCK PTHREAD_MUTEX_INITIALIZER /* must use locks */ #define ATOMIC_TYPE ssize_t _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list