類別 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