class Sequel::SingleConnectionPool
This is the fastest connection pool, since it isn't a connection pool at all. It is just a wrapper around a single connection that uses the connection pool API.
Public Class Methods
new(db, opts=OPTS)
click to toggle source
Calls superclass method
Sequel::ConnectionPool::new
# File lib/sequel/connection_pool/single.rb 7 def initialize(db, opts=OPTS) 8 super 9 @conn = [] 10 end
Public Instance Methods
all_connections() { |first| ... }
click to toggle source
Yield the connection if one has been made.
# File lib/sequel/connection_pool/single.rb 13 def all_connections 14 yield @conn.first if @conn 15 end
disconnect(opts=nil)
click to toggle source
Disconnect the connection from the database.
# File lib/sequel/connection_pool/single.rb 18 def disconnect(opts=nil) 19 return unless c = @conn.first 20 disconnect_connection(c) 21 @conn.clear 22 nil 23 end
hold(server=nil) { |c| ... }
click to toggle source
Yield the connection to the block.
# File lib/sequel/connection_pool/single.rb 26 def hold(server=nil) 27 begin 28 unless c = @conn.first 29 @conn.replace([c = make_new(:default)]) 30 end 31 yield c 32 rescue Sequel::DatabaseDisconnectError, *@error_classes => e 33 disconnect if disconnect_error?(e) 34 raise 35 end 36 end
max_size()
click to toggle source
The SingleConnectionPool
always has a maximum size of 1.
# File lib/sequel/connection_pool/single.rb 39 def max_size 40 1 41 end
pool_type()
click to toggle source
# File lib/sequel/connection_pool/single.rb 43 def pool_type 44 :single 45 end
size()
click to toggle source
The SingleConnectionPool
always has a size of 1 if connected and 0 if not.
# File lib/sequel/connection_pool/single.rb 49 def size 50 @conn.empty? ? 0 : 1 51 end
Private Instance Methods
preconnect(concurrent = nil)
click to toggle source
Make sure there is a valid connection.
# File lib/sequel/connection_pool/single.rb 56 def preconnect(concurrent = nil) 57 hold{} 58 end