Sha256: e74da71406601864b6edced9fe4c26501bf247d2f73748d2c42116214b81e3af

Contents?: true

Size: 538 Bytes

Versions: 23

Compression:

Stored size: 538 Bytes

Contents

# Copyright (c) 2016 SolarWinds, LLC.
# All rights reserved.

module AppOpticsAPM
  ##
  # Provides thread local storage for AppOpticsAPM.
  #
  # Example usage:
  # module AppOpticsAPMBase
  #   extend ::AppOpticsAPM::ThreadLocal
  #   thread_local :layer_op
  # end
  module ThreadLocal
    def thread_local(name)
      key = "__#{self}_#{name}__".intern

      define_method(name) do
        Thread.current[key]
      end

      define_method(name.to_s + '=') do |value|
        Thread.current[key] = value
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
appoptics_apm-4.4.0 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.3.1 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.3.0 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.2.7 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.2.6 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.2.5 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.2.4 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.2.3 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.2.2 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.2.1 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.2.0 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.1.2 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.0.9 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.1.1 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.0.8 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.1.0 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.0.7 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.0.6 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.0.5 lib/appoptics_apm/thread_local.rb
appoptics_apm-4.0.4 lib/appoptics_apm/thread_local.rb