Class: Gem::Net::HTTP::Persistent::Pool
    Do not use.  This class is for internal use only.
  
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: | |
| Instance Chain: | |
| Inherits: | Bundler::ConnectionPool 
 | 
| Defined in: | lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb | 
Constant Summary
::Bundler::ConnectionPool - Inherited
  
Class Method Summary
- .new(options = {}, &block) ⇒ Pool constructor
::Bundler::ConnectionPool - Inherited
| .after_fork | See additional method definition at line 52. | 
| .new, .wrap | |
Instance Attribute Summary
- #available readonly
- #key readonly
::Bundler::ConnectionPool - Inherited
| #auto_reload_after_fork | Automatically drop all connections after fork. | 
| #size | Size of this connection pool. | 
Instance Method Summary
::Bundler::ConnectionPool - Inherited
| #available | Number of pool entries available for checkout at this instant. | 
| #checkin, #checkout, | |
| #idle | Number of pool entries created and idle in the pool. | 
| #reap | Reaps idle connections that have been idle for over  | 
| #reload | Reloads the  | 
| #shutdown | Shuts down the  | 
| #then | Alias for Bundler::ConnectionPool#with. | 
| #with | |
::Bundler::ConnectionPool::ForkTracker - Included
Constructor Details
    .new(options = {}, &block)  ⇒ Pool 
  
# File 'lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb', line 6
def initialize( = {}, &block) super @available = Gem::Net::HTTP::Persistent::TimedStackMulti.new(@size, &block) @key = "current-#{@available.object_id}" end
Instance Attribute Details
#available (readonly)
[ GitHub ]# File 'lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb', line 3
attr_reader :available # :nodoc:
#key (readonly)
[ GitHub ]# File 'lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb', line 4
attr_reader :key # :nodoc:
Instance Method Details
#checkin(net_http_args)
[ GitHub ]# File 'lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb', line 13
def checkin net_http_args if net_http_args.is_a?(Hash) && net_http_args.size == 1 && net_http_args[:force] # Bundler::ConnectionPool 2.4+ calls `checkin(force: true)` after fork. # When this happens, we should remove all connections from Thread.current if stacks = Thread.current[@key] stacks.each do |http_args, connections| connections.each do |conn| @available.push conn, connection_args: http_args end connections.clear end end else stack = Thread.current[@key][net_http_args] ||= [] raise Bundler::ConnectionPool::Error, 'no connections are checked out' if stack.empty? conn = stack.pop if stack.empty? @available.push conn, connection_args: net_http_args Thread.current[@key].delete(net_http_args) Thread.current[@key] = nil if Thread.current[@key].empty? end end nil end
#checkout(net_http_args)
[ GitHub ]# File 'lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb', line 43
def checkout net_http_args stacks = Thread.current[@key] ||= {} stack = stacks[net_http_args] ||= [] if stack.empty? then conn = @available.pop connection_args: net_http_args else conn = stack.last end stack.push conn conn end
#shutdown
[ GitHub ]# File 'lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb', line 58
def shutdown Thread.current[@key] = nil super end