[svn:parrot] r45805 - branches/compact_pool_revamp/src/gc

bacek at svn.parrot.org bacek at svn.parrot.org
Mon Apr 19 14:12:05 UTC 2010


Author: bacek
Date: Mon Apr 19 14:12:04 2010
New Revision: 45805
URL: https://trac.parrot.org/parrot/changeset/45805

Log:
Don't skip blocks with a lot of _free_ memory.

Modified:
   branches/compact_pool_revamp/src/gc/alloc_resources.c

Modified: branches/compact_pool_revamp/src/gc/alloc_resources.c
==============================================================================
--- branches/compact_pool_revamp/src/gc/alloc_resources.c	Mon Apr 19 14:00:14 2010	(r45804)
+++ branches/compact_pool_revamp/src/gc/alloc_resources.c	Mon Apr 19 14:12:04 2010	(r45805)
@@ -600,7 +600,8 @@
     size_t skip_pos    = 0;
 
     while (cur_block) {
-        if (cur_block->size * 0.2 > cur_block->freed) {
+        if ((cur_block->size * 0.2 > cur_block->freed)
+            && (cur_block->free < cur_block->size * 0.2)) {
             /* Don't reclaim almost filled blocks */
             /* TODO Keep blocks ordered by block->start to use binary search */
             skip_blocks[skip_pos++] = cur_block;


More information about the parrot-commits mailing list