Changeset: e89ac935d476 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e89ac935d476
Modified Files:
gdk/gdk_utils.c
gdk/gdk_utils.h
monetdb5/mal/mal.c
monetdb5/mal/mal.h
Branch: default
Log Message:
Make exit call of mserver_reset optional (for in-process shutdown).
diffs (85 lines):
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -682,7 +682,7 @@ GDKregister(MT_Id pid)
/* coverity[+kill] */
void
-GDKreset(int status)
+GDKreset(int status, int exit)
{
MT_Id pid = MT_getpid();
Thread t, s;
@@ -774,7 +774,9 @@ GDKreset(int status)
//gdk_system_reset(); CHECK OUT
}
#ifndef HAVE_EMBEDDED
- MT_global_exit(status);
+ if (exit) {
+ MT_global_exit(status);
+ }
#endif
}
@@ -789,7 +791,7 @@ GDKexit(int status)
exit(status);
}
GDKprepareExit();
- GDKreset(status);
+ GDKreset(status, 1);
#ifndef HAVE_EMBEDDED
MT_exit_thread(-1);
#endif
diff --git a/gdk/gdk_utils.h b/gdk/gdk_utils.h
--- a/gdk/gdk_utils.h
+++ b/gdk/gdk_utils.h
@@ -95,7 +95,7 @@ gdk_export int GDKexiting(void);
gdk_export void GDKregister(MT_Id pid);
gdk_export void GDKprepareExit(void);
-gdk_export void GDKreset(int status);
+gdk_export void GDKreset(int status, int exit);
gdk_export const char *GDKversion(void);
gdk_export gdk_return GDKextractParentAndLastDirFromPath(const char *path,
char *last_dir_parent, char *last_dir);
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -117,7 +117,7 @@ int mal_init(void){
* activity first.
* This function should be called after you have issued sql_reset();
*/
-void mserver_reset(void)
+void mserver_reset(int exit)
{
str err = 0;
@@ -161,7 +161,7 @@ void mserver_reset(void)
mal_trace = 0;
/* No need to clean up the namespace, it will simply be extended
* upon restart mal_namespace_reset(); */
- GDKreset(0); // terminate all other threads
+ GDKreset(0, exit); // terminate all other threads
}
@@ -176,6 +176,6 @@ void mserver_reset(void)
*/
void mal_exit(void){
- mserver_reset();
+ mserver_reset(1);
GDKexit(0); /* properly end GDK */
}
diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h
--- a/monetdb5/mal/mal.h
+++ b/monetdb5/mal/mal.h
@@ -84,7 +84,7 @@ mal_export MT_Lock mal_beatLock ;
mal_export int mal_init(void);
mal_export void mal_exit(void);
-mal_export void mserver_reset(void);
+mal_export void mserver_reset(int exit);
/* This should be here, but cannot, as "Client" isn't known, yet ... |-(
* For now, we move the prototype declaration to src/mal/mal_client.c,
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list