Sha256: 71a08929ef4c74da1780a3c79493f5eace8f0bfb7f90a981af010d46a98e5813
Contents?: true
Size: 878 Bytes
Versions: 3
Compression:
Stored size: 878 Bytes
Contents
# frozen_string_literal: true module ElasticAPM # @api private module ChildDurations # @api private module Methods def child_durations @child_durations ||= Durations.new end def child_started child_durations.start end def child_stopped child_durations.stop end end # @api private class Durations def initialize @nesting_level = 0 @start = nil @duration = 0 @mutex = Mutex.new end attr_reader :duration def start @mutex.synchronize do @nesting_level += 1 @start = Util.micros if @nesting_level == 1 end end def stop @mutex.synchronize do @nesting_level -= 1 @duration = (Util.micros - @start) if @nesting_level == 0 end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
elastic-apm-3.6.0 | lib/elastic_apm/child_durations.rb |
elastic-apm-3.5.0 | lib/elastic_apm/child_durations.rb |
elastic-apm-3.4.0 | lib/elastic_apm/child_durations.rb |