Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
29d2040b
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
29d2040b
编写于
11月 29, 2011
作者:
A
Aaron Patterson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
AbstractAdapter#close can be called to add the connection back to the
pool.
上级
ce3d8d64
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
35 addition
and
11 deletion
+35
-11
activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
...ve_record/connection_adapters/abstract/connection_pool.rb
+1
-0
activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
...lib/active_record/connection_adapters/abstract_adapter.rb
+18
-11
activerecord/test/cases/connection_adapters/abstract_adapter_test.rb
...d/test/cases/connection_adapters/abstract_adapter_test.rb
+16
-0
未找到文件。
activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
浏览文件 @
29d2040b
...
...
@@ -275,6 +275,7 @@ def checkout_new_connection
raise
ConnectionNotEstablished
unless
@automatic_reconnect
c
=
new_connection
c
.
pool
=
self
@connections
<<
c
c
end
...
...
activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
浏览文件 @
29d2040b
...
...
@@ -53,23 +53,25 @@ class AbstractAdapter
define_callbacks
:checkout
,
:checkin
attr_accessor
:visitor
attr_accessor
:visitor
,
:pool
attr_reader
:schema_cache
,
:last_use
,
:in_use
alias
:in_use?
:in_use
def
initialize
(
connection
,
logger
=
nil
)
#:nodoc:
def
initialize
(
connection
,
logger
=
nil
,
pool
=
nil
)
#:nodoc:
super
()
@active
=
nil
@connection
,
@logger
=
connection
,
logger
@active
=
nil
@connection
=
connection
@in_use
=
false
@instrumenter
=
ActiveSupport
::
Notifications
.
instrumenter
@last_use
=
false
@logger
=
logger
@open_transactions
=
0
@pool
=
pool
@query_cache
=
Hash
.
new
{
|
h
,
sql
|
h
[
sql
]
=
{}
}
@query_cache_enabled
=
false
@query_cache
=
Hash
.
new
{
|
h
,
sql
|
h
[
sql
]
=
{}
}
@open_transactions
=
0
@instrumenter
=
ActiveSupport
::
Notifications
.
instrumenter
@visitor
=
nil
@schema_cache
=
SchemaCache
.
new
self
@in_use
=
false
@last_use
=
false
@schema_cache
=
SchemaCache
.
new
self
@visitor
=
nil
end
def
lease
...
...
@@ -256,6 +258,11 @@ def current_savepoint_name
"active_record_
#{
open_transactions
}
"
end
# Check the connection back in to the connection pool
def
close
pool
.
checkin
self
end
protected
def
log
(
sql
,
name
=
"SQL"
,
binds
=
[])
...
...
activerecord/test/cases/connection_adapters/abstract_adapter_test.rb
浏览文件 @
29d2040b
...
...
@@ -33,6 +33,22 @@ def test_expire_mutates_in_use
adapter
.
expire
assert
!
adapter
.
in_use?
,
'adapter is in use'
end
def
test_close
pool
=
ConnectionPool
.
new
(
Base
::
ConnectionSpecification
.
new
({},
nil
))
pool
.
connections
<<
adapter
adapter
.
pool
=
pool
# Make sure the pool marks the connection in use
assert_equal
adapter
,
pool
.
connection
assert
adapter
.
in_use?
# Close should put the adapter back in the pool
adapter
.
close
assert
!
adapter
.
in_use?
assert_equal
adapter
,
pool
.
connection
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录