Changeset: dfdc65522250 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dfdc65522250
Modified Files:
monetdb5/mal/mal_recycle.c
Branch: default
Log Message:
mal_recycle.c: re-doing / re-applying changeset 2eb81b79cbde
(assuming it was accidentally rather than intentionally reverted in changset
95b2be4ec9c3)
diffs (66 lines):
diff --git a/monetdb5/mal/mal_recycle.c b/monetdb5/mal/mal_recycle.c
--- a/monetdb5/mal/mal_recycle.c
+++ b/monetdb5/mal/mal_recycle.c
@@ -295,7 +295,7 @@ static void RECYCLEcleanCache(Client cnt
int k, *leaves, *vm;
int limit, idx;
size_t mem;
- lng wr = recyclerMemoryUsed - MEMORY_THRESHOLD * monet_memory;
+ lng wr = recyclerMemoryUsed - (lng) (MEMORY_THRESHOLD * monet_memory);
dbl minben, ben;
bte *used;
@@ -355,7 +355,7 @@ newpass:
#endif
/* find entries to evict */
- mem = (size_t)recyclerMemoryUsed > MEMORY_THRESHOLD * monet_memory ;
+ mem = recyclerMemoryUsed > (lng) (MEMORY_THRESHOLD * monet_memory) ;
vm = (int *)GDKzalloc(sizeof(int)*ltop);
vtop = 0;
@@ -371,7 +371,7 @@ newpass:
}
vm[vtop++] = leaves[idx];
} else { /* evict several to get enough memory */
- wr = recyclerMemoryUsed - MEMORY_THRESHOLD * monet_memory;
+ wr = recyclerMemoryUsed - (lng) (MEMORY_THRESHOLD *
monet_memory);
k = 0;
for (l = 0; l < ltop; l++) {
// also discard leaves that are more expensive to find
then compute
@@ -439,7 +439,7 @@ newpass:
GDKfree(dmask);
/* check if a new pass of cache cleaning is needed */
- if ( (size_t)recyclerMemoryUsed > MEMORY_THRESHOLD * monet_memory )
+ if ( recyclerMemoryUsed > (lng) (MEMORY_THRESHOLD * monet_memory) )
goto newpass;
}
@@ -494,7 +494,7 @@ RECYCLEkeep(Client cntxt, MalBlkPtr mb,
if ( recycleBlk->stop >= recycleCacheLimit)
return ; /* no more caching */
- if ( (size_t)(recyclerMemoryUsed + mb->profiler[pc].wbytes) >
MEMORY_THRESHOLD * monet_memory)
+ if ( recyclerMemoryUsed + mb->profiler[pc].wbytes > (lng)
(MEMORY_THRESHOLD * monet_memory))
return ; /* no more caching */
rd = 0;
@@ -948,6 +948,7 @@ RECYCLEentry(Client cntxt, MalBlkPtr mb,
void
RECYCLEexitImpl(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p,
RuntimeProfile prof)
{
+ lng thresh;
if (recycleBlk == NULL || mb->profiler == NULL)
return;
@@ -955,7 +956,8 @@ RECYCLEexitImpl(Client cntxt, MalBlkPtr
if ( !RECYCLEinterest(p))
return;
MT_lock_set(&recycleLock, "recycle");
- if ( (GDKmem_cursize() > MEMORY_THRESHOLD * monet_memory &&
recyclerMemoryUsed > MEMORY_THRESHOLD * monet_memory) || recycleBlk->stop >=
recycleCacheLimit)
+ thresh = (lng) (MEMORY_THRESHOLD * monet_memory);
+ if ( (GDKmem_cursize() > (size_t) thresh && recyclerMemoryUsed >
thresh) || recycleBlk->stop >= recycleCacheLimit)
RECYCLEcleanCache(cntxt);
/* infinite case, admit all new instructions */
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list