diff options
author | Teddy <ted.sybil@gmail.com> | 2013-08-14 00:08:30 +0800 |
---|---|---|
committer | Teddy <ted.sybil@gmail.com> | 2013-08-14 00:08:30 +0800 |
commit | c2522466d2fcb5273004f1989b89186cd68001d7 (patch) | |
tree | 6c5eed59e9b32e8e82eee2d22f66be3cede6f6d3 /gc.cpp | |
parent | faab1d57661e4d68823723a8270205c3a3c6e148 (diff) |
added gc setting built-insgc_cyc
Diffstat (limited to 'gc.cpp')
-rw-r--r-- | gc.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -14,6 +14,7 @@ static Container *cyc_list[GC_QUEUE_SIZE]; GarbageCollector::GarbageCollector() { mapping.clear(); pending_list = NULL; + resolve_threshold = GC_CYC_THRESHOLD; } GarbageCollector::PendingEntry::PendingEntry( @@ -113,7 +114,7 @@ EvalObj *GarbageCollector::attach(EvalObj *ptr) { } void GarbageCollector::cycle_resolve() { - if (mapping.size() < GC_CYC_THRESHOLD) + if (mapping.size() < resolve_threshold) return; EvalObjSet visited; Container **clptr = cyc_list; @@ -152,3 +153,11 @@ void GarbageCollector::cycle_resolve() { #endif force(); } + +size_t GarbageCollector::get_remaining() { + return mapping.size(); +} + +void GarbageCollector::set_resolve_threshold(size_t new_thres) { + resolve_threshold = new_thres; +} |