Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
ba1544d7
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,发现更多精彩内容 >>
提交
ba1544d7
编写于
8月 31, 2012
作者:
J
Jon Leighton
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
One hash is enough
We don't need separate @class_to_pool and @connection_pool hashes.
上级
4a274ed1
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
18 deletion
+14
-18
activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
...ve_record/connection_adapters/abstract/connection_pool.rb
+13
-17
activerecord/lib/active_record/fixtures.rb
activerecord/lib/active_record/fixtures.rb
+1
-1
未找到文件。
activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
浏览文件 @
ba1544d7
...
...
@@ -496,40 +496,38 @@ def checkout_and_verify(c)
# ActiveRecord::Base.connection_handler. Active Record models use this to
# determine that connection pool that they should use.
class
ConnectionHandler
def
initialize
(
pools
=
Hash
.
new
{
|
h
,
k
|
h
[
k
]
=
{}
})
@connection_pools
=
pools
@class_to_pool
=
Hash
.
new
{
|
h
,
k
|
h
[
k
]
=
{}
}
def
initialize
@class_to_pool
=
Hash
.
new
{
|
h
,
k
|
h
[
k
]
=
{}
}
end
def
connection_pools
@connection_pools
[
Process
.
pid
]
class_to_pool
.
values
.
compact
end
def
establish_connection
(
klass
,
spec
)
class_to_pool
[
klass
]
=
connection_pools
[
spec
]
=
ConnectionAdapters
::
ConnectionPool
.
new
(
spec
)
class_to_pool
[
klass
]
=
ConnectionAdapters
::
ConnectionPool
.
new
(
spec
)
end
# Returns true if there are any active connections among the connection
# pools that the ConnectionHandler is managing.
def
active_connections?
connection_pools
.
values
.
any?
{
|
pool
|
pool
.
active_connection?
}
connection_pools
.
any?
(
&
:active_connection?
)
end
# Returns any connections in use by the current thread back to the pool,
# and also returns connections to the pool cached by threads that are no
# longer alive.
def
clear_active_connections!
connection_pools
.
each
_value
{
|
pool
|
pool
.
release_connection
}
connection_pools
.
each
(
&
:release_connection
)
end
# Clears the cache which maps classes.
def
clear_reloadable_connections!
connection_pools
.
each
_value
{
|
pool
|
pool
.
clear_reloadable_connections!
}
connection_pools
.
each
(
&
:clear_reloadable_connections!
)
end
def
clear_all_connections!
connection_pools
.
each
_value
{
|
pool
|
pool
.
disconnect!
}
connection_pools
.
each
(
&
:disconnect!
)
end
# Locate the connection of the nearest super class. This can be an
...
...
@@ -553,13 +551,11 @@ def connected?(klass)
# can be used as an argument for establish_connection, for easily
# re-establishing the connection.
def
remove_connection
(
klass
)
pool
=
class_to_pool
.
delete
(
klass
)
return
nil
unless
pool
connection_pools
.
delete
pool
.
spec
pool
.
automatic_reconnect
=
false
pool
.
disconnect!
pool
.
spec
.
config
if
pool
=
class_to_pool
.
delete
(
klass
)
pool
.
automatic_reconnect
=
false
pool
.
disconnect!
pool
.
spec
.
config
end
end
def
retrieve_connection_pool
(
klass
)
...
...
activerecord/lib/active_record/fixtures.rb
浏览文件 @
ba1544d7
...
...
@@ -879,7 +879,7 @@ def teardown_fixtures
end
def
enlist_fixture_connections
ActiveRecord
::
Base
.
connection_handler
.
connection_pools
.
values
.
map
(
&
:connection
)
ActiveRecord
::
Base
.
connection_handler
.
connection_pools
.
map
(
&
:connection
)
end
private
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录