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