summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/profiler.rb4
2 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 7d0edd2..3ba2273 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,7 @@
-Sun Feb 3 09:37:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Feb 3 09:38:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/profiler.rb (PROFILE_CALL_PROC, PROFILE_RETURN_PROC): add b_call
+ and b_return to profile block calls.
* lib/profiler.rb (PROFILE_CALL_PROC, PROFILE_RETURN_PROC): split
PROFILE_PROC for call and return events.
diff --git a/lib/profiler.rb b/lib/profiler.rb
index 862f442..be33daf 100644
--- a/lib/profiler.rb
+++ b/lib/profiler.rb
@@ -76,12 +76,12 @@ module Profiler__
@@start = nil # the start time that profiling began
@@stacks = nil # the map of stacks keyed by thread
@@maps = nil # the map of call data keyed by thread, class and id. Call data contains the call count, total time,
- PROFILE_CALL_PROC = TracePoint.new(:call, :c_call) {|tp| # :nodoc:
+ PROFILE_CALL_PROC = TracePoint.new(*%i[call c_call b_call]) {|tp| # :nodoc:
now = Process.times[0]
stack = (@@stacks[Thread.current] ||= [])
stack.push [now, 0.0]
}
- PROFILE_RETURN_PROC = TracePoint.new(:return, :c_return) {|tp| # :nodoc:
+ PROFILE_RETURN_PROC = TracePoint.new(*%i[return c_return b_return]) {|tp| # :nodoc:
now = Process.times[0]
key = Wrapper.new(tp.defined_class, tp.method_id)
stack = (@@stacks[Thread.current] ||= [])