Changeset: a5d5a7bf9bd3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a5d5a7bf9bd3
Modified Files:
        monetdb5/mal/Makefile.ag
        monetdb5/mal/mal.c
        monetdb5/modules/mal/wlc.c
        monetdb5/modules/mal/wlc.h
        monetdb5/modules/mal/wlc.mal
        monetdb5/optimizer/opt_wlc.c
        monetdb5/optimizer/opt_wlc.h
        monetdb5/optimizer/optimizer.c
        monetdb5/optimizer/optimizer.h
        monetdb5/optimizer/optimizer.mal
Branch: default
Log Message:

moved reset code from wlc/opt_pipes into epilogue functions within the
wlc and optimizer module to solve some of the circular dependencies


diffs (172 lines):

diff --git a/monetdb5/mal/Makefile.ag b/monetdb5/mal/Makefile.ag
--- a/monetdb5/mal/Makefile.ag
+++ b/monetdb5/mal/Makefile.ag
@@ -44,6 +44,7 @@ lib_mal = {
                mal_stack.c mal_stack.h \
                mal_type.c mal_type.h \
                mal_utils.c mal_utils.h \
+               mal_wlc.c mal_wlc.h \
                mal_private.h
 }
 
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -37,10 +37,7 @@ int have_hge;
 #include "mal_private.h"
 #include "mal_runtime.h"
 #include "mal_resource.h"
-#include "wlc.h"
 #include "mal_atom.h"
-#include "opt_pipes.h"
-#include "tablet.h"
 
 MT_Lock     mal_contextLock = MT_LOCK_INITIALIZER("mal_contextLock");
 MT_Lock     mal_remoteLock = MT_LOCK_INITIALIZER("mal_remoteLock");
@@ -99,7 +96,6 @@ void mserver_reset(void)
        str err = 0;
 
        GDKprepareExit();
-       WLCreset();
        MCstopClients(0);
        setHeartbeat(-1);
        stopProfiler(0);
@@ -122,7 +118,6 @@ void mserver_reset(void)
        mal_runtime_reset();
        mal_module_reset();
        mal_atom_reset();
-       opt_pipes_reset();
 #ifndef NDEBUG
        mdbExit();
 #endif
diff --git a/monetdb5/modules/mal/wlc.c b/monetdb5/modules/mal/wlc.c
--- a/monetdb5/modules/mal/wlc.c
+++ b/monetdb5/modules/mal/wlc.c
@@ -333,10 +333,13 @@ WLCflush(Client cntxt, MalBlkPtr mb, Mal
        return WLCsetConfig();
 }
 
-void
-WLCreset(void)
+str 
+WLCepilogue(void *ret)
 {
        str msg = MAL_SUCCEED;
+
+       (void)ret;
+
        MT_lock_set(&wlc_lock);
        msg = WLCcloselogger();
        wlc_snapshot[0]=0;
@@ -344,8 +347,8 @@ WLCreset(void)
        wlc_name[0]= 0;
        wlc_write[0] =0;
        MT_lock_unset(&wlc_lock);
-       if(msg) //TODO we have to return a possible error message somehow
-               freeException(msg);
+               //TODO we have to return a possible error message somehow
+       return(msg);
 }
 
 /*
diff --git a/monetdb5/modules/mal/wlc.h b/monetdb5/modules/mal/wlc.h
--- a/monetdb5/modules/mal/wlc.h
+++ b/monetdb5/modules/mal/wlc.h
@@ -49,7 +49,7 @@ mal_export char wlc_write[26];
 
 mal_export str WLCinit(void);
 mal_export int WLCused(void);
-mal_export void WLCreset(void);
+mal_export str WLCepilogue(void *ret);
 mal_export str WLCgetConfig(void);
 mal_export str WLCreadConfig(FILE *fd);
 mal_export str WLCflush(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
diff --git a/monetdb5/modules/mal/wlc.mal b/monetdb5/modules/mal/wlc.mal
--- a/monetdb5/modules/mal/wlc.mal
+++ b/monetdb5/modules/mal/wlc.mal
@@ -10,6 +10,10 @@ pattern init()
 address WLCinitCmd
 comment "Test for running as master";
 
+command epilogue():void
+address WLCepilogue
+comment "release the resources held by the wlc module";
+
 pattern master()
 address WLCmaster
 comment "Activate the workload-capture-replay process";
diff --git a/monetdb5/optimizer/opt_wlc.c b/monetdb5/optimizer/opt_wlc.c
--- a/monetdb5/optimizer/opt_wlc.c
+++ b/monetdb5/optimizer/opt_wlc.c
@@ -12,6 +12,7 @@
  */
 #include "monetdb_config.h"
 #include "opt_wlc.h"
+#include "wlc.h"
 
 str
 OPTwlcImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
diff --git a/monetdb5/optimizer/opt_wlc.h b/monetdb5/optimizer/opt_wlc.h
--- a/monetdb5/optimizer/opt_wlc.h
+++ b/monetdb5/optimizer/opt_wlc.h
@@ -6,15 +6,14 @@
  * Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
  */
 
-#ifndef _OPT_WLCR_H
-#define _OPT_WLCR_H
+#ifndef _OPT_WLC_H
+#define _OPT_WLC_H
 
 #include "mal_interpreter.h"
 #include "mal_scenario.h"
-#include "wlc.h"
 #include "opt_support.h"
 #include "opt_prelude.h"
 
 mal_export str OPTwlcImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 
-#endif /* _OPT_WLCR_H */
+#endif /* _OPT_WLC_H */
diff --git a/monetdb5/optimizer/optimizer.c b/monetdb5/optimizer/optimizer.c
--- a/monetdb5/optimizer/optimizer.c
+++ b/monetdb5/optimizer/optimizer.c
@@ -42,6 +42,13 @@ optimizer_prelude(Client cntxt, MalBlkPt
        return MAL_SUCCEED;
 }
 
+str
+optimizer_epilogue(void *ret)
+{
+       (void)ret;
+       opt_pipes_reset();
+       return MAL_SUCCEED;
+}
 
 /*
  * MAL functions can be optimized explicitly using the routines below.
diff --git a/monetdb5/optimizer/optimizer.h b/monetdb5/optimizer/optimizer.h
--- a/monetdb5/optimizer/optimizer.h
+++ b/monetdb5/optimizer/optimizer.h
@@ -16,6 +16,7 @@
 #include "opt_prelude.h"
 
 mal_export str optimizer_prelude(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+mal_export str optimizer_epilogue(void *ret);
 mal_export str QOToptimize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 
 #endif /* _OPTIMIZER_H */
diff --git a/monetdb5/optimizer/optimizer.mal b/monetdb5/optimizer/optimizer.mal
--- a/monetdb5/optimizer/optimizer.mal
+++ b/monetdb5/optimizer/optimizer.mal
@@ -133,6 +133,10 @@ pattern prelude()
 address optimizer_prelude
 comment "Initialize the optimizer";
 
+command epilogue():void
+address optimizer_epilogue
+comment "release the resources held by the optimizer module";
+
 pattern optimize(mod:str, fcn:str)
 address QOToptimize
 comment "Optimize a specific operation";
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to