Changeset: 99e19cee8d96 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=99e19cee8d96
Modified Files:
        common/utils/matomic.h
        gdk/gdk_system.c
        gdk/gdk_system.h
        testing/Mtest.py.in
Branch: default
Log Message:

Merge with Apr2019 branch.


diffs (106 lines):

diff --git a/common/utils/matomic.h b/common/utils/matomic.h
--- a/common/utils/matomic.h
+++ b/common/utils/matomic.h
@@ -14,6 +14,7 @@
  * The following operations are defined:
  * ATOMIC_VAR_INIT -- initializer for the variable (not necessarily atomic!);
  * ATOMIC_INIT -- initialize the variable (not necessarily atomic!);
+ * ATOMIC_DESTROY -- destroy the variable
  * ATOMIC_GET -- return the value of a variable;
  * ATOMIC_SET -- set the value of a variable;
  * ATOMIC_XCG -- set the value of a variable, return original value;
@@ -83,6 +84,7 @@ typedef unsigned long long ATOMIC_BASE_T
 #endif
 
 #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_SET(var, val)   atomic_store(var, (ATOMIC_BASE_TYPE) (val))
 #define ATOMIC_XCG(var, val)   atomic_exchange(var, (ATOMIC_BASE_TYPE) (val))
@@ -136,6 +138,7 @@ typedef volatile int64_t ATOMIC_TYPE;
 typedef int64_t ATOMIC_BASE_TYPE;
 #define ATOMIC_VAR_INIT(val)   (val)
 #define ATOMIC_INIT(var, val)  (*(var) = (val))
+#define ATOMIC_DESTROY(var)    ((void) 0)
 
 #ifdef __INTEL_COMPILER
 #define ATOMIC_GET(var)                _InterlockedExchangeAdd64(var, 0)
@@ -173,6 +176,7 @@ typedef volatile int ATOMIC_TYPE;
 typedef int ATOMIC_BASE_TYPE;
 #define ATOMIC_VAR_INIT(val)   (val)
 #define ATOMIC_INIT(var, val)  (*(var) = (val))
+#define ATOMIC_DESTROY(var)    ((void) 0)
 
 #ifdef __INTEL_COMPILER
 #define ATOMIC_GET(var)                _InterlockedExchangeAdd(var, 0)
@@ -243,6 +247,7 @@ typedef volatile int ATOMIC_TYPE;
 #endif
 #define ATOMIC_VAR_INIT(val)   (val)
 #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_SET(var, val)   __atomic_store_n(var, (ATOMIC_BASE_TYPE) (val), 
__ATOMIC_SEQ_CST)
@@ -284,6 +289,8 @@ ATOMIC_INIT(ATOMIC_TYPE *var, ATOMIC_BAS
 }
 #define ATOMIC_INIT(var, val)  ATOMIC_INIT((var), (ATOMIC_BASE_TYPE) (val))
 
+#define ATOMIC_DESTROY(var)    pthread_mutex_destroy(&(var)->lck)
+
 static inline ATOMIC_BASE_TYPE
 ATOMIC_GET(ATOMIC_TYPE *var)
 {
diff --git a/gdk/gdk_system.c b/gdk/gdk_system.c
--- a/gdk/gdk_system.c
+++ b/gdk/gdk_system.c
@@ -296,6 +296,7 @@ rm_winthread(struct winthread *w)
        if (*wp)
                *wp = w->next;
        LeaveCriticalSection(&winthread_cs);
+       ATOMIC_DESTROY(&w->exited);
        free(w);
 }
 
@@ -617,6 +618,7 @@ rm_posthread_locked(struct posthread *p)
                ;
        if (*pp)
                *pp = p->next;
+       ATOMIC_DESTROY(&p->exited);
        free(p);
 }
 
diff --git a/gdk/gdk_system.h b/gdk/gdk_system.h
--- a/gdk/gdk_system.h
+++ b/gdk/gdk_system.h
@@ -256,6 +256,8 @@ gdk_export int MT_join_thread(MT_Id t);
                                        break;                          \
                                }                                       \
                        ATOMIC_CLEAR(&GDKlocklistlock);                 \
+                       ATOMIC_DESTROY(&(l)->contention);               \
+                       ATOMIC_DESTROY(&(l)->sleep);                    \
                }                                                       \
        } while (0)
 
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -2803,8 +2803,8 @@ def killProc(proc, outfile = None, cmd =
     proc.killed = True
     if proc.onechild:
         if procdebug:
-            print('killProc: calling proc.terminate() on PID %d' % proc.pid)
-        proc.terminate()
+            print('killProc: calling proc.kill() on PID %d' % proc.pid)
+        proc.kill()
     elif os.name == 'nt':
         if procdebug:
             print('killProc: starting process "taskkill" "/F" "/T" "/PID" 
"%s"\n' % str(proc.pid))
@@ -2814,7 +2814,7 @@ def killProc(proc, outfile = None, cmd =
         out, err = p.communicate()
         if procdebug:
             print('killProc: process exited "taskkill" "/F" "/T" "/PID" "%s" 
(%s)\n' % (str(proc.pid), proc.returncode))
-        proc.terminate()
+        proc.kill()
     else:
         killchildren(proc.pid)
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to