class Pod4::ConnectionPool::Pool
Public Class Methods
new()
click to toggle source
# File lib/pod4/connection_pool.rb, line 17 def initialize @items = [] @mutex = Mutex.new end
Public Instance Methods
<<(cl)
click to toggle source
# File lib/pod4/connection_pool.rb, line 22 def <<(cl) @mutex.synchronize do @items << PoolItem.new(cl, Thread.current.object_id) end end
_dump()
click to toggle source
# File lib/pod4/connection_pool.rb, line 53 def _dump @mutex.synchronize do @items end end
drop()
click to toggle source
# File lib/pod4/connection_pool.rb, line 45 def drop @items.delete_if{|x| x.thread_id == Thread.current.object_id } end
get_current()
click to toggle source
# File lib/pod4/connection_pool.rb, line 28 def get_current @items.find{|x| x.thread_id == Thread.current.object_id } end
get_free()
click to toggle source
# File lib/pod4/connection_pool.rb, line 32 def get_free @mutex.synchronize do pi = @items.find{|x| x.thread_id.nil? } pi.thread_id = Thread.current.object_id if pi pi end end
release()
click to toggle source
# File lib/pod4/connection_pool.rb, line 40 def release pi = get_current pi.thread_id = nil if pi end
size()
click to toggle source
# File lib/pod4/connection_pool.rb, line 49 def size @items.size end