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; }