aboutsummaryrefslogtreecommitdiffstats
path: root/transient_heap.c
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@cookpad.com>2019-05-16 16:44:30 +0900
committerKoichi Sasada <ko1@atdot.net>2019-05-16 17:18:50 +0900
commit88449100bc6d23a00dbf3addb97665f4f606f2b8 (patch)
tree3bc4cb6ddf5d6c6add65da5c9463260ba55730e3 /transient_heap.c
parenta160b2f56716f70fa3e485ae89875da48baefc1d (diff)
downloadruby-88449100bc6d23a00dbf3addb97665f4f606f2b8.tar.gz
don't need to sweep rest.
`transient_heap_evacuate()` disables GC using `rb_gc_disable()` to prohibt GC invocation because of new allocation for evacuated memory. However, `rb_gc_disable()` sweep all rest of unswept pages. We don't need to cancel lazy sweep so this patch introduce `rb_gc_disable_no_rest()` which doesn't cancel lazy sweep.
Diffstat (limited to 'transient_heap.c')
-rw-r--r--transient_heap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/transient_heap.c b/transient_heap.c
index bf2de155df..81cd495c6d 100644
--- a/transient_heap.c
+++ b/transient_heap.c
@@ -730,7 +730,7 @@ transient_heap_evacuate(void *dmy)
if (TRANSIENT_HEAP_DEBUG >= 1) fprintf(stderr, "!! transient_heap_evacuate: skip while transient_heap_marking\n");
}
else {
- VALUE gc_disabled = rb_gc_disable();
+ VALUE gc_disabled = rb_gc_disable_no_rest();
struct transient_heap_block* block;
if (TRANSIENT_HEAP_DEBUG >= 1) {