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

Reply via email to