diff options
Diffstat (limited to 'activesupport/lib/active_support')
-rw-r--r-- | activesupport/lib/active_support/notifications.rb | 16 | ||||
-rw-r--r-- | activesupport/lib/active_support/notifications/instrumenter.rb | 11 |
2 files changed, 7 insertions, 20 deletions
diff --git a/activesupport/lib/active_support/notifications.rb b/activesupport/lib/active_support/notifications.rb index d65431a943..886d7183eb 100644 --- a/activesupport/lib/active_support/notifications.rb +++ b/activesupport/lib/active_support/notifications.rb @@ -47,21 +47,11 @@ module ActiveSupport attr_writer :notifier delegate :publish, :unsubscribe, :to => :notifier - def instrument(name, payload = {}, info = nil) + def instrument(name, payload = {}) if @instrumenters[name] - instrumenter.instrument(name, payload, info) { - yield payload if block_given? - } + instrumenter.instrument(name, payload) { yield payload if block_given? } else - value = nil - if block_given? - if info - info[:elapsed] = Benchmark.ms { value = yield payload } - else - value = yield payload - end - end - value + yield payload if block_given? end end diff --git a/activesupport/lib/active_support/notifications/instrumenter.rb b/activesupport/lib/active_support/notifications/instrumenter.rb index 4fc446fb2b..441fefb491 100644 --- a/activesupport/lib/active_support/notifications/instrumenter.rb +++ b/activesupport/lib/active_support/notifications/instrumenter.rb @@ -14,19 +14,16 @@ module ActiveSupport # Instrument the given block by measuring the time taken to execute it # and publish it. Notice that events get sent even if an error occurs # in the passed-in block - def instrument(name, payload={}, info = nil) + def instrument(name, payload={}) + started = Time.now + begin - started = Time.now yield rescue Exception => e payload[:exception] = [e.class.name, e.message] raise e ensure - finished = Time.now - if info - info[:elapsed] = 1000.0 * (finished.to_f - started.to_f) - end - @notifier.publish(name, started, finished, @id, payload) + @notifier.publish(name, started, Time.now, @id, payload) end end |