Update of /cvsroot/monetdb/MonetDB5/src/modules/mal
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv31873/modules/mal

Modified Files:
        recycle.mx 
Log Message:
Added the recycle cache limit.
Permit additional integer arguments to steer the policies.
Approved the first recycle tests


Index: recycle.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/modules/mal/recycle.mx,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- recycle.mx  6 Mar 2008 20:26:43 -0000       1.3
+++ recycle.mx  8 Mar 2008 11:57:58 -0000       1.4
@@ -37,15 +37,15 @@
 address RECYCLEdump
 comment "Dump summary of recycle table for potential re-use benefits";
 
-command setRetainPolicy(p:int):void
+pattern setRetainPolicy(p:int...):void
 address RECYCLEsetRetain
 comment "Set recycler retainment policy";
 
-command setReusePolicy(p:int):void
+pattern setReusePolicy(p:int...):void
 address RECYCLEsetReuse
 comment "Set recycler reuse policy";
 
-command setCachePolicy(p:int):void
+pattern setCachePolicy(p:int...):void
 address RECYCLEsetCache
 comment "Set recycler cache policy";
 
@@ -73,15 +73,16 @@
 recycle_export str RECYCLEdump(int *ret);
 recycle_export str RECYCLEstart(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 recycle_export str RECYCLEstop(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-recycle_export str RECYCLEsetRetain(int *ret, sht *p);
-recycle_export str RECYCLEsetReuse(int *ret, sht *p);
-recycle_export str RECYCLEsetCache(int *ret, sht *p);
+recycle_export str RECYCLEsetRetain(MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
+recycle_export str RECYCLEsetReuse(MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
+recycle_export str RECYCLEsetCache(MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 recycle_export str RECYCLEshutdown(int *ret);
 
 #endif
 @-
 @c
 #include "mal_config.h"
+#include "mal_interpreter.h"
 #include "mal_function.h"
 #include "recycle.h"
 
@@ -106,7 +107,7 @@
        else{
                mal_set_lock(recycleLock,"recycle");
                mb->version= recycleVersion;
-               recycleUsers++;
+               recycleClaim++;
                mal_unset_lock(recycleLock,"recycle");
        }
 #ifdef _DEBUG_RECYCLE_
@@ -126,7 +127,7 @@
                return MAL_SUCCEED;
        mal_set_lock(recycleLock,"recycle");
        recycleBlk->version = 0;
-       recycleUsers--;
+       recycleClaim--;
        mal_unset_lock(recycleLock,"recycle");
        return MAL_SUCCEED;
 }
@@ -143,37 +144,40 @@
 
        /* and dump the statistics */
        for(i=0; i< recycleBlk->stop; i++){
-               stream_printf(GDKout,"#%d count=%d ticks=%d\n", i,
+               stream_printf(GDKout,"#%4d count=%3d ticks=%4d %s\n", i,
                        recycleBlk->profiler[i].counter,
-                       recycleBlk->profiler[i].ticks);
+                       recycleBlk->profiler[i].ticks,
+                       
instruction2str(recycleBlk,getInstrPtr(recycleBlk,i),TRUE));
        }
        return MAL_SUCCEED;
 }
 
 str
-RECYCLEsetRetain(int *ret, sht *p)
+RECYCLEsetRetain(MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
 {
-       (void) ret;
-       retainPolicy = *p;
+       (void) mb;
+       retainPolicy = * (int*) getArgReference(stk, p,1);
        (void)retainPolicy;
        return MAL_SUCCEED;
 }
 
 str
-RECYCLEsetReuse(int *ret, sht *p)
+RECYCLEsetReuse(MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
 {
-       (void) ret;
-       reusePolicy = *p;
+       (void) mb;
+       reusePolicy = * (int*) getArgReference(stk, p,1);
        (void)reusePolicy;
        return MAL_SUCCEED;
 }
 
 str
-RECYCLEsetCache(int *ret, sht *p)
+RECYCLEsetCache(MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
 {
-       (void) ret;
-       rcachePolicy = *p;
-       (void)rcachePolicy;
+       (void) mb;
+       rcachePolicy = * (int*) getArgReference(stk, p,1);
+       if( rcachePolicy && p->argc >= 2)
+               recycleCacheLimit = * (int*) getArgReference(stk, p,2);
+       (void)recycleCacheLimit;
        return MAL_SUCCEED;
 }
 @-


-------------------------------------------------------------------------
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