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

Reply via email to