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