aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-11-29 13:12:56 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2011-11-29 14:02:58 -0800
commit9bf8bf82b9d8614d9c7ccc31892887f6a79ce2f5 (patch)
tree648e20705e7ca4730c80adedcd0af7d8643313e1 /activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
parent7837574e5bc229d4a07e40151eb303e7d6c120ec (diff)
downloadrails-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.rb15
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