類別 DRb::DRbConn
類別
處理 DRbObject
與實際物件所在的伺服器之間的連線。
此類別會維護一個連線池,以減少每次方法呼叫啟動和關閉連線的負擔。
此類別由 DRbObject
內部使用。使用者通常不需要直接處理它。
公開類別方法
make_pool() 按一下以切換來源
# File lib/drb/drb.rb, line 1259 def self.make_pool ThreadObject.new do |queue| pool = [] while true queue._execute do |message| case(message[0]) when :take then remote_uri = message[1] conn = nil new_pool = [] pool.each do |c| if conn.nil? and c.uri == remote_uri conn = c if c.alive? else new_pool.push c end end pool = new_pool conn when :store then conn = message[1] pool.unshift(conn) pool.pop.close while pool.size > POOL_SIZE conn else nil end end end end end
stop_pool() 按一下以切換來源
# File lib/drb/drb.rb, line 1292 def self.stop_pool @pool_proxy&.kill @pool_proxy = nil end