From d1c518d416274a8142cb8281f3361e91f98cc5f4 Mon Sep 17 00:00:00 2001 From: ko1 Date: Thu, 20 Jun 2013 20:39:20 +0000 Subject: * gc.c (gc_prof_sweep_timer_stop): accumulate sweep time only when record->gc_time > 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- gc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'gc.c') diff --git a/gc.c b/gc.c index 4528318fb4..44326d53e7 100644 --- a/gc.c +++ b/gc.c @@ -5086,13 +5086,17 @@ gc_prof_sweep_timer_stop(rb_objspace_t *objspace) } if (objspace->profile.run) { double sweep_time; + gc_profile_record *record = gc_prof_record(objspace); - if (record->gc_time > 0 || GC_PROFILE_MORE_DETAIL) { - /* need to accumulate for lazy sweep */ + if (record->gc_time > 0) { sweep_time = elapsed_time_from(objspace->profile.gc_sweep_start_time); + /* need to accumulate GC time for lazy sweep after gc() */ record->gc_time += sweep_time; } + else if (GC_PROFILE_MORE_DETAIL) { + sweep_time = elapsed_time_from(objspace->profile.gc_sweep_start_time); + } #if GC_PROFILE_MORE_DETAIL record->gc_sweep_time += sweep_time; -- cgit v1.2.3