blob: 3f0ac68143b6c43114438b6743aa03424ca30d09 (
plain) (
tree)
|
|
require 'active_support/per_thread_registry'
module ActiveRecord
# This is a registry class for storing local variables in active record. The
# class allows you to access variables that are local to the current thread.
# These thread local variables are stored as attributes in the
# +RuntimeRegistry+ class.
#
# You can access the thread local variables by calling a variable's name on
# the +RuntimeRegistry+ class. For example, if you wanted to obtain the
# connection handler for the current thread, you would invoke:
#
# ActiveRecord::RuntimeRegistry.instance.connection_handler
#
# The +PerThreadRegistry+ module will make a new +RuntimeRegistry+ instance
# and store it in +Thread.current+. Whenever you make a call for an attribute
# on the +RuntimeRegistry+ class, the call will be sent to the instance that
# is stored in +Thread.current+.
#
# Note that you can also make the following call which would provide an
# equivalent result as the previous code:
#
# ActiveRecord::RuntimeRegistry.connection_handler
#
# However, this is less performant because it makes a call to +method_missing+
# before it sends the method call to the +instance+.
class RuntimeRegistry
extend ActiveSupport::PerThreadRegistry
attr_accessor :connection_handler, :sql_runtime, :connection_id
end
end
|