Changeset: 861ff6c756f7 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=861ff6c756f7 Modified Files: gdk/gdk_system.h Branch: default Log Message:
Add all important &; use pointer-specific interlocked functions; add parentheses. diffs (25 lines): diff --git a/gdk/gdk_system.h b/gdk/gdk_system.h --- a/gdk/gdk_system.h +++ b/gdk/gdk_system.h @@ -279,15 +279,15 @@ gdk_export ATOMIC_TYPE volatile GDKsemaw gdk_export ATOMIC_TYPE volatile GDKsemasleepcnt; #ifdef _MSC_VER #if SIZEOF_SIZE_T == 8 -#define ATOMIC_XCG_ptr(var, val) _InterlockedExchange64(&var, val) -#define ATOMIC_CAS_ptr(var, old, new) _InterlockedCompareExchange64(var, new, old) +#define ATOMIC_XCG_ptr(var, val) _InterlockedExchangePointer(&(var), (val)) +#define ATOMIC_CAS_ptr(var, old, new) _InterlockedCompareExchangePointer(&(var), (new), (old)) #else -#define ATOMIC_XCG_ptr(var, val) _InterlockedExchange(&var, val) -#define ATOMIC_CAS_ptr(var, old, new) _InterlockedCompareExchange(var, new, old) +#define ATOMIC_XCG_ptr(var, val) ((void *) _InterlockedExchange((volatile long *) &(var), (long) (val))) +#define ATOMIC_CAS_ptr(var, old, new) ((void *) _InterlockedCompareExchange((volatile long *) &(var), (long) (new), (long) (old))) #endif #else -#define ATOMIC_XCG_ptr(var, val) __sync_lock_test_and_set(&var, val) -#define ATOMIC_CAS_ptr(var, old, new) __sync_val_compare_and_swap(&var, old, new) +#define ATOMIC_XCG_ptr(var, val) __sync_lock_test_and_set(&(var), (val)) +#define ATOMIC_CAS_ptr(var, old, new) __sync_val_compare_and_swap(&(var), (old), (new)) #endif #define _DBG_LOCK_COUNT_0(l, n) ATOMIC_INC(GDKlockcnt, dummy, n) #define _DBG_LOCK_CONTENTION(l, n) \ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list