提交 b1ac8814 编写于 作者: A Aaron Patterson

connections are only removed if they are inactve

上级 86729eb7
......@@ -239,7 +239,7 @@ def reap
synchronize do
stale = Time.now - @timeout
connections.dup.each do |conn|
remove conn if conn.in_use? && stale > conn.last_use
remove conn if conn.in_use? && stale > conn.last_use && !conn.active?
end
end
end
......
......@@ -25,7 +25,7 @@ def teardown
@pool.connections.each(&:close)
end
def test_reap
def test_reap_and_active
@pool.checkout
@pool.checkout
@pool.checkout
......@@ -35,9 +35,25 @@ def test_reap
@pool.reap
assert_equal connections.length, @pool.connections.length
end
def test_reap_inactive
@pool.checkout
@pool.checkout
@pool.checkout
@pool.timeout = 0
connections = @pool.connections.dup
connections.each do |conn|
conn.extend(Module.new { def active?; false; end; })
end
@pool.reap
assert_equal 0, @pool.connections.length
ensure
connections.map(&:close)
connections.each(&:close)
end
def test_remove_connection
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册