Changeset: 50d53946e051 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=50d53946e051
Modified Files:
gdk/gdk_utils.c
monetdb5/mal/Makefile.ag
monetdb5/mal/mal.c
monetdb5/mal/mal_linker.c
monetdb5/optimizer/opt_statistics.c
monetdb5/optimizer/optimizer.c
tools/embedded/embedded.c
Branch: Jun2016
Log Message:
shutdown and restart
diffs (156 lines):
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -1350,7 +1350,9 @@ GDKexit(int status)
}
GDKprepareExit();
GDKreset(status);
+#ifndef HAVE_EMBEDDED
MT_exit_thread(-1);
+#endif
}
/*
diff --git a/monetdb5/mal/Makefile.ag b/monetdb5/mal/Makefile.ag
--- a/monetdb5/mal/Makefile.ag
+++ b/monetdb5/mal/Makefile.ag
@@ -9,6 +9,7 @@ INCLUDES = ../../common/options \
../../common/utils \
HAVE_MAPI?../../clients/mapilib \
../../gdk \
+ ../optimizer \
$(READLINE_INCS)
MTSAFE
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -34,7 +34,7 @@ int have_hge;
#include "mal_private.h"
#include "mal_runtime.h"
#include "mal_resource.h"
-
+#include "opt_statistics.h"
MT_Lock mal_contextLock MT_LOCK_INITIALIZER("mal_contextLock");
MT_Lock mal_namespaceLock MT_LOCK_INITIALIZER("mal_namespaceLock");
@@ -125,6 +125,7 @@ void mserver_reset(void)
MCstopClients(0);
setHeartbeat(-1);
stopProfiler();
+ QOTstatisticsExit();
RECYCLEdrop(mal_clients);
AUTHreset();
if ((err = msab_wildRetreat()) != NULL) {
diff --git a/monetdb5/mal/mal_linker.c b/monetdb5/mal/mal_linker.c
--- a/monetdb5/mal/mal_linker.c
+++ b/monetdb5/mal/mal_linker.c
@@ -60,12 +60,13 @@ getAddress(stream *out, str filename, st
if( adr != NULL)
return adr; /* found it */
}
- if( filename && prev >= 0) {
- if( strcmp(filename, filesLoaded[prev].filename)==0) {
- adr = (MALfcn) dlsym(filesLoaded[prev].handle, fcnname);
- if( adr != NULL)
- return adr; /* found it */
- }
+ if( prev >= 0 && filename &&
+ filesLoaded[prev].filename &&
+ strcmp(filename, filesLoaded[prev].filename) == 0) {
+
+ adr = (MALfcn) dlsym(filesLoaded[prev].handle, fcnname);
+ if( adr != NULL)
+ return adr; /* found it */
}
/*
* Search for occurrence of the function in any library already loaded.
diff --git a/monetdb5/optimizer/opt_statistics.c
b/monetdb5/optimizer/opt_statistics.c
--- a/monetdb5/optimizer/opt_statistics.c
+++ b/monetdb5/optimizer/opt_statistics.c
@@ -45,6 +45,22 @@ QOT_create(str hnme, str tnme, int tt)
return b;
}
+static void QOTstatisticsSave(void) {
+ bat names[5];
+
+ if( qotStat[QOTnames] == NULL)
+ return;
+ MT_lock_set(&qotlock);
+ names[0] = 0;
+ names[1] = abs(qotStat[QOTnames]->batCacheid);
+ names[2] = abs(qotStat[QOTcalls]->batCacheid);
+ names[3] = abs(qotStat[QOTactions]->batCacheid);
+ names[4] = abs(qotStat[QOTtimings]->batCacheid);
+
+ TMsubcommit_list(names, 5);
+ MT_lock_unset(&qotlock);
+}
+
static void QOTstatisticsInit(void){
oid o=0;
int i,j;
@@ -74,7 +90,7 @@ static void QOTstatisticsInit(void){
}
MT_lock_unset(&qotlock);
/* save them at least once */
- QOTstatisticsExit();
+ QOTstatisticsSave();
}
void
@@ -150,19 +166,8 @@ QOTupdateStatistics(str nme, int actions
void
QOTstatisticsExit(void)
{
- bat names[5];
-
- if( qotStat[QOTnames] == NULL)
- return;
- MT_lock_set(&qotlock);
- names[0] = 0;
- names[1] = abs(qotStat[QOTnames]->batCacheid);
- names[2] = abs(qotStat[QOTcalls]->batCacheid);
- names[3] = abs(qotStat[QOTactions]->batCacheid);
- names[4] = abs(qotStat[QOTtimings]->batCacheid);
-
- TMsubcommit_list(names, 5);
- MT_lock_unset(&qotlock);
+ QOTstatisticsSave();
+ qotStat[QOTnames] = NULL;
}
static int
diff --git a/monetdb5/optimizer/optimizer.c b/monetdb5/optimizer/optimizer.c
--- a/monetdb5/optimizer/optimizer.c
+++ b/monetdb5/optimizer/optimizer.c
@@ -64,7 +64,7 @@ QOTclrdebugOptimizers(Client cntxt, MalB
/*
* MAL functions can be optimized explicitly using the routines below.
- * Beware, the function names should be known as literalstrings, because
+ * Beware, the function names should be known as literal strings, because
* you may not know the runtime situation.
*/
diff --git a/tools/embedded/embedded.c b/tools/embedded/embedded.c
--- a/tools/embedded/embedded.c
+++ b/tools/embedded/embedded.c
@@ -278,11 +278,10 @@ str monetdb_get_columns(void* conn, cons
return msg;
}
-// TODO: fix this, it is not working correctly
void monetdb_shutdown(void) {
- // kill SQL
- // SQLepilogue(NULL);
- // kill MAL & GDK
- // mal_exit();
- // monetdb_embedded_initialized = 0;
+ if (monetdb_embedded_initialized) {
+ SQLepilogue(NULL);
+ mal_exit();
+ monetdb_embedded_initialized = 0;
+ }
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list