summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-10-31 01:02:29 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-10-31 01:02:29 +0000
commit9d64a542094efdbcf8fc8b192750d6b0343665c3 (patch)
tree79011dd5107df17b3f7e2c8533a5ed965906c139 /gc.c
parent1546ffed499aa40e905485b00293fbb530d7ebd1 (diff)
internal.h: RUBY_DTRACE_HOOK
* internal.h (RUBY_DTRACE_HOOK): extract from RUBY_DTRACE_CREATE_HOOK for other type hooks. * gc.c (RUBY_DTRACE_GC_HOOK): ditto. * parse.y (RUBY_DTRACE_PARSE_HOOK): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/gc.c b/gc.c
index fcfd53da49..1f8c84967f 100644
--- a/gc.c
+++ b/gc.c
@@ -8414,12 +8414,12 @@ gc_prof_timer_stop(rb_objspace_t *objspace)
}
}
+#define RUBY_DTRACE_GC_HOOK(name) \
+ do {if (RUBY_DTRACE_GC_##name##_ENABLED()) RUBY_DTRACE_GC_##name();} while (0)
static inline void
gc_prof_mark_timer_start(rb_objspace_t *objspace)
{
- if (RUBY_DTRACE_GC_MARK_BEGIN_ENABLED()) {
- RUBY_DTRACE_GC_MARK_BEGIN();
- }
+ RUBY_DTRACE_GC_HOOK(MARK_BEGIN);
#if GC_PROFILE_MORE_DETAIL
if (gc_prof_enabled(objspace)) {
gc_prof_record(objspace)->gc_mark_time = getrusage_time();
@@ -8430,9 +8430,7 @@ gc_prof_mark_timer_start(rb_objspace_t *objspace)
static inline void
gc_prof_mark_timer_stop(rb_objspace_t *objspace)
{
- if (RUBY_DTRACE_GC_MARK_END_ENABLED()) {
- RUBY_DTRACE_GC_MARK_END();
- }
+ RUBY_DTRACE_GC_HOOK(MARK_END);
#if GC_PROFILE_MORE_DETAIL
if (gc_prof_enabled(objspace)) {
gc_profile_record *record = gc_prof_record(objspace);
@@ -8444,9 +8442,7 @@ gc_prof_mark_timer_stop(rb_objspace_t *objspace)
static inline void
gc_prof_sweep_timer_start(rb_objspace_t *objspace)
{
- if (RUBY_DTRACE_GC_SWEEP_BEGIN_ENABLED()) {
- RUBY_DTRACE_GC_SWEEP_BEGIN();
- }
+ RUBY_DTRACE_GC_HOOK(SWEEP_BEGIN);
if (gc_prof_enabled(objspace)) {
gc_profile_record *record = gc_prof_record(objspace);
@@ -8459,9 +8455,7 @@ gc_prof_sweep_timer_start(rb_objspace_t *objspace)
static inline void
gc_prof_sweep_timer_stop(rb_objspace_t *objspace)
{
- if (RUBY_DTRACE_GC_SWEEP_END_ENABLED()) {
- RUBY_DTRACE_GC_SWEEP_END();
- }
+ RUBY_DTRACE_GC_HOOK(SWEEP_END);
if (gc_prof_enabled(objspace)) {
double sweep_time;