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

Reply via email to