Sha256: 273095d5a5d5b935c295bcf2e4743ae0c9bd9b5e52405ecf35334479e11c87d9

Contents?: true

Size: 824 Bytes

Versions: 56

Compression:

Stored size: 824 Bytes

Contents

module Datadog
  module OpenTracer
    # OpenTracing adapter for thread local scopes
    class ThreadLocalScope < Scope
      attr_reader \
        :finish_on_close

      def initialize(
        manager:,
        span:,
        finish_on_close: true
      )
        super(manager: manager, span: span)
        @finish_on_close = finish_on_close
        @previous_scope = manager.active
      end

      # Mark the end of the active period for the current thread and Scope,
      # updating the ScopeManager#active in the process.
      #
      # NOTE: Calling close more than once on a single Scope instance leads to
      # undefined behavior.
      def close
        return unless equal?(manager.active)
        span.finish if finish_on_close
        manager.send(:set_scope, @previous_scope)
      end
    end
  end
end

Version data entries

56 entries across 56 versions & 2 rubygems

Version Path
ddtrace-0.45.0 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.44.0 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.43.0 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.42.0 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.41.0 lib/ddtrace/opentracer/thread_local_scope.rb
ls-trace-0.2.0 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.40.0 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.39.0 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.38.0 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.37.0 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.36.0 lib/ddtrace/opentracer/thread_local_scope.rb
ls-trace-0.1.2 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.35.2 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.35.1 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.35.0 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.34.2 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.34.1 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.34.0 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.33.1 lib/ddtrace/opentracer/thread_local_scope.rb
ddtrace-0.33.0 lib/ddtrace/opentracer/thread_local_scope.rb