diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2011-11-29 13:12:56 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-11-29 14:02:58 -0800 |
commit | 9bf8bf82b9d8614d9c7ccc31892887f6a79ce2f5 (patch) | |
tree | 648e20705e7ca4730c80adedcd0af7d8643313e1 /activerecord/lib/active_record/connection_adapters/abstract_adapter.rb | |
parent | 7837574e5bc229d4a07e40151eb303e7d6c120ec (diff) | |
download | rails-9bf8bf82b9d8614d9c7ccc31892887f6a79ce2f5.tar.gz rails-9bf8bf82b9d8614d9c7ccc31892887f6a79ce2f5.tar.bz2 rails-9bf8bf82b9d8614d9c7ccc31892887f6a79ce2f5.zip |
Adapters keep in_use flag when leased
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_adapter.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_adapter.rb | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb index 75e568b557..4a9653c08c 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb @@ -4,6 +4,7 @@ require 'bigdecimal/util' require 'active_support/core_ext/benchmark' require 'active_support/deprecation' require 'active_record/connection_adapters/schema_cache' +require 'monitor' module ActiveRecord module ConnectionAdapters # :nodoc: @@ -48,13 +49,17 @@ module ActiveRecord include DatabaseLimits include QueryCache include ActiveSupport::Callbacks + include MonitorMixin define_callbacks :checkout, :checkin attr_accessor :visitor - attr_reader :schema_cache + attr_reader :schema_cache, :last_use, :in_use + alias :in_use? :in_use def initialize(connection, logger = nil) #:nodoc: + super() + @active = nil @connection, @logger = connection, logger @query_cache_enabled = false @@ -63,6 +68,14 @@ module ActiveRecord @instrumenter = ActiveSupport::Notifications.instrumenter @visitor = nil @schema_cache = SchemaCache.new self + @in_use = false + end + + def lease + synchronize do + @in_use = true + @last_use = Time.now + end end # Returns the human-readable name of the adapter. Use mixed case - one |