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 checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list