Changeset: 7dd819fae4bb for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7dd819fae4bb Modified Files: gdk/gdk_atomic.h gdk/gdk_utils.c Branch: default Log Message:
Fixed changeset 46ee15612684 so that it also works when using pthread locks for atomic instructions. diffs (92 lines): diff --git a/gdk/gdk_atomic.h b/gdk/gdk_atomic.h --- a/gdk/gdk_atomic.h +++ b/gdk/gdk_atomic.h @@ -169,7 +169,7 @@ static inline ATOMIC_TYPE pthread_mutex_unlock(lck); return old; } -#define ATOMIC_GET(var, lck, fcn) __ATOMIC_GET(&var, &(lck)) +#define ATOMIC_GET(var, lck, fcn) __ATOMIC_GET(&var, &(lck).lock) static inline ATOMIC_TYPE __ATOMIC_SET(volatile ATOMIC_TYPE *var, ATOMIC_TYPE val, pthread_mutex_t *lck) @@ -181,7 +181,7 @@ static inline ATOMIC_TYPE pthread_mutex_unlock(lck); return new; } -#define ATOMIC_SET(var, val, lck, fcn) __ATOMIC_SET(&var, (val), &(lck)) +#define ATOMIC_SET(var, val, lck, fcn) __ATOMIC_SET(&var, (val), &(lck).lock) static inline ATOMIC_TYPE __ATOMIC_ADD(volatile ATOMIC_TYPE *var, ATOMIC_TYPE val, pthread_mutex_t *lck) @@ -193,7 +193,7 @@ static inline ATOMIC_TYPE pthread_mutex_unlock(lck); return old; } -#define ATOMIC_ADD(var, val, lck, fcn) __ATOMIC_ADD(&var, (val), &(lck)) +#define ATOMIC_ADD(var, val, lck, fcn) __ATOMIC_ADD(&var, (val), &(lck).lock) static inline ATOMIC_TYPE __ATOMIC_SUB(volatile ATOMIC_TYPE *var, ATOMIC_TYPE val, pthread_mutex_t *lck) @@ -205,7 +205,7 @@ static inline ATOMIC_TYPE pthread_mutex_unlock(lck); return old; } -#define ATOMIC_SUB(var, val, lck, fcn) __ATOMIC_SUB(&var, (val), &(lck)) +#define ATOMIC_SUB(var, val, lck, fcn) __ATOMIC_SUB(&var, (val), &(lck).lock) static inline ATOMIC_TYPE __ATOMIC_INC(volatile ATOMIC_TYPE *var, pthread_mutex_t *lck) @@ -216,7 +216,7 @@ static inline ATOMIC_TYPE pthread_mutex_unlock(lck); return new; } -#define ATOMIC_INC(var, lck, fcn) __ATOMIC_INC(&var, &(lck)) +#define ATOMIC_INC(var, lck, fcn) __ATOMIC_INC(&var, &(lck).lock) static inline ATOMIC_TYPE __ATOMIC_DEC(volatile ATOMIC_TYPE *var, pthread_mutex_t *lck) @@ -227,7 +227,7 @@ static inline ATOMIC_TYPE pthread_mutex_unlock(lck); return new; } -#define ATOMIC_DEC(var, lck, fcn) __ATOMIC_DEC(&var, &(lck)) +#define ATOMIC_DEC(var, lck, fcn) __ATOMIC_DEC(&var, &(lck).lock) #define USE_PTHREAD_LOCKS /* must use pthread locks */ #define ATOMIC_LOCK /* must use locks for atomic access */ @@ -245,7 +245,7 @@ static inline ATOMIC_FLAG pthread_mutex_unlock(lck); return orig; } -#define ATOMIC_TAS(var, lck, fcn) __ATOMIC_TAS(&var, &(lck)) +#define ATOMIC_TAS(var, lck, fcn) __ATOMIC_TAS(&var, &(lck).lock) static inline void __ATOMIC_CLEAR(volatile ATOMIC_FLAG *var, pthread_mutex_t *lck) @@ -254,7 +254,7 @@ static inline void *var = 0; pthread_mutex_unlock(lck); } -#define ATOMIC_CLEAR(var, lck, fcn) __ATOMIC_CLEAR(&var, &(lck)) +#define ATOMIC_CLEAR(var, lck, fcn) __ATOMIC_CLEAR(&var, &(lck).lock) #endif diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c --- a/gdk/gdk_utils.c +++ b/gdk/gdk_utils.c @@ -1193,11 +1193,11 @@ GDKexiting(void) { int stopped; #ifdef ATOMIC_LOCK - pthread_mutex_lock(&GDKstoppedLock); + pthread_mutex_lock(&GDKstoppedLock.lock); #endif stopped = GDKstopped != 0; #ifdef ATOMIC_LOCK - pthread_mutex_unlock(&GDKstoppedLock); + pthread_mutex_unlock(&GDKstoppedLock.lock); #endif return stopped; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list