Update of /cvsroot/monetdb/MonetDB5/src/mal
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv29051
Modified Files:
mal_interpreter.mx mal_recycle.mx
Log Message:
Solved the timing issue and recycle control
Index: mal_recycle.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_recycle.mx,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -d -r1.55 -r1.56
--- mal_recycle.mx 17 Mar 2008 07:06:03 -0000 1.55
+++ mal_recycle.mx 17 Mar 2008 08:53:05 -0000 1.56
@@ -64,7 +64,7 @@
#include "mal_instruction.h"
/* #define _DEBUG_RECYCLE_
-#define _DEBUG_RECYCLE_REUSE */
+#define _DEBUG_RECYCLE_REUSE */
@-
We need some hard limits to not run out of datastructure
spaces.
@@ -128,7 +128,7 @@
#include "mal_function.h"
MT_Lock recycleLock ;
-int recycleVersion = 0; /* version of recycle table */
+int recycleVersion = 1; /* version of recycle table */
MalBlkPtr recycleBlk = NULL;
@-
@@ -320,8 +320,10 @@
if (!mem && !size)
return;
- if (target>=0)
+ if (target>=0) {
recycleBlk->profiler[target].clk= ++lruclock; /* most recently
used */
+ return;
+ }
for(i=0; i< recycleBlk->stop; i++)
if (i != target){
@@ -641,6 +643,8 @@
int i, cnt=0;
ValPtr lhs,rhs;
+ if( recycleVersion == 0)
+ return 0;
RECYCLEversion(mb);
for(i=0;i< p->retc; i++) {
@@ -661,9 +665,9 @@
if (cnt != p->retc && (i = RECYCLEreuse(mb,stk,p)) >= 0 )
cnt = p->retc;
- stk->clk= GDKusec();
if ((recycleCacheLimit || recycleMemory) && i>=0)
RECYCLEcache(i, 0);
+ stk->clk= GDKusec();
statements++;
recycled += cnt==p->retc;
return cnt == p->retc;
Index: mal_interpreter.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_interpreter.mx,v
retrieving revision 1.222
retrieving revision 1.223
diff -u -d -r1.222 -r1.223
--- mal_interpreter.mx 17 Mar 2008 07:30:58 -0000 1.222
+++ mal_interpreter.mx 17 Mar 2008 08:53:04 -0000 1.223
@@ -1469,7 +1469,7 @@
The recycler works for any variable and relies on policy functions
registered.
@= MALrecycleStart
- if( !mb->version || !RECYCLEentry(mb,stk,pci) )
+ if( mb->version== 0 || !RECYCLEentry(mb,stk,pci) )
@= MALrecycleExit
if( pci->recycle )
RECYCLEexit(mb,stk,pci);
@@ -1616,7 +1616,7 @@
if (malProfileMode == 0)
/* mostly true */;
else {
- if( mb->profiler != NULL ){
+ if( mb->profiler != NULL && stk ){
stk->clk= GDKusec();
if( mb->profiler[stkpc].trace)
{
@@ -1637,7 +1637,7 @@
if( malProfileMode == 0)
/* mostly true */;
else
- if(ppc!= -1 && mb->profiler != NULL && mb->profiler[ppc].trace)
+ if(ppc!= -1 && mb->profiler != NULL && mb->profiler[ppc].trace && stk)
{
newclk= GDKusec();
mb->profiler[ppc].counter++;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins