Changeset: 92f8e307b7f0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=92f8e307b7f0
Modified Files:
        
Branch: default
Log Message:

Merge with Oct2010 branch.


diffs (85 lines):

diff -r 3305182b351c -r 92f8e307b7f0 MonetDB/src/gdk/gdk_utils.mx
--- a/MonetDB/src/gdk/gdk_utils.mx      Tue Nov 02 19:57:20 2010 +0100
+++ b/MonetDB/src/gdk/gdk_utils.mx      Wed Nov 03 16:25:25 2010 +0100
@@ -92,6 +92,8 @@
 #define VALGRIND_FREELIKE_BLOCK(addr, rzB)
 #endif
 
+static int GDKstopped = 1;
+
 @}
 @+ Monet configuration file
 Parse a possible MonetDB.conf file (either in the default location
@@ -1487,6 +1489,7 @@
 #ifdef HAVE_POSIX_FADVISE
 static str highload_name[] = { "idle", "low", "medium", "high", "extreme" };
 
+static MT_Id GDKvmtrim_id;
 static int membits = 0;
 static void
 GDKvmtrim(void *limit)
@@ -1503,7 +1506,13 @@
        }
        do {
                stream *fp = NULL;
-               MT_sleep_ms(highload ? 500 : 5000);
+               int t;
+               /* sleep using catnaps so we can exit in a timely fashion */
+               for (t = highload ? 500 : 5000; t > 0; t -= 50) {
+                       MT_sleep_ms(50);
+                       if (GDKstopped)
+                               return;
+               }
                /* check for runtime overruling */
                if (GDK_vm_trim == 0) {
                        highload = 0;
@@ -1678,11 +1687,8 @@
 #endif
 
 #ifdef HAVE_POSIX_FADVISE
-       if (!GDKembedded && GDK_vm_trim) {
-               MT_Id t;
-
-               MT_create_thread(&t, GDKvmtrim, &GDK_mem_maxsize, 
MT_THR_DETACHED);
-       }
+       if (!GDKembedded && GDK_vm_trim)
+               MT_create_thread(&GDKvmtrim_id, GDKvmtrim, &GDK_mem_maxsize, 
MT_THR_JOINABLE);
 #endif
 
        return 1;
@@ -1693,11 +1699,9 @@
 the transient BATs should be removed.
 The buffer pool manager takes care of this.
 @h
-gdk_export int GDKstopped;
 gdk_export int GDKnr_threads;
 
 @c
-int GDKstopped = 1;
 int GDKnr_threads = 0;
 
 @h
@@ -1710,7 +1714,11 @@
 {
        gdk_set_lock(GDKthreadLock, "GDKexit");
        if (GDKstopped == 0) {
-               GDKstopped++;   /* shouldn't there be a lock here? */
+               GDKstopped = 1; /* shouldn't there be a lock here? */
+#ifdef HAVE_POSIX_FADVISE
+               if (!GDKembedded && GDK_vm_trim)
+                       MT_join_thread(GDKvmtrim_id);
+#endif
                GDKnrofthreads = 0;
                gdk_unset_lock(GDKthreadLock, "GDKexit");
 
diff -r 3305182b351c -r 92f8e307b7f0 sql/vertoo.config
--- a/sql/vertoo.config Tue Nov 02 19:57:20 2010 +0100
+++ b/sql/vertoo.config Wed Nov 03 16:25:25 2010 +0100
@@ -64,7 +64,6 @@
 
 monetdb5.setVersionFormat('@normal')
 monetdb5.addAnchor("configure.ag", "req_monetdb5_ver=%q")
-monetdb5.addAnchor("MonetDB-SQL.pc.in", "\nRequires: MonetDB >= %v")
 monetdb5.addAnchors("MonetDB-SQL.spec",
                     arguments(pattern = "\nRequires: MonetDB5-server >= %v",
                               format = "%major.%minor"),
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to