From e54daddac4e5583e62ef9d665d4f3d4a859478c9 Mon Sep 17 00:00:00 2001 From: nari Date: Sun, 24 Mar 2013 04:53:44 +0000 Subject: [PATCH] * gc.c (GC_ENABLE_LAZY_SWEEP): new macro to switch lazy sweeping for debugging. [Feature #8024] [ruby-dev:47135] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ gc.c | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 08f7ac2c64..2257af1268 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Mar 24 13:42:24 2013 Narihiro Nakamura + + * gc.c (GC_ENABLE_LAZY_SWEEP): new macro to switch lazy sweeping + for debugging. [Feature #8024] [ruby-dev:47135] + Sun Mar 24 12:55:47 2013 Narihiro Nakamura * gc.c: We have no chance to expand the heap when lazy sweeping is diff --git a/gc.c b/gc.c index 38bdcfd04b..253dc0afdd 100644 --- a/gc.c +++ b/gc.c @@ -98,6 +98,9 @@ static ruby_gc_params_t initial_params = { #ifndef GC_PROFILE_MORE_DETAIL #define GC_PROFILE_MORE_DETAIL 0 #endif +#ifndef GC_ENABLE_LAZY_SWEEP +#define GC_ENABLE_LAZY_SWEEP 1 +#endif typedef struct gc_profile_record { double gc_time; @@ -2043,7 +2046,7 @@ gc_prepare_free_objects(rb_objspace_t *objspace) { int res; - if (objspace->flags.dont_lazy_sweep) { + if (!GC_ENABLE_LAZY_SWEEP || objspace->flags.dont_lazy_sweep) { if (heaps_increment(objspace)) { return; }