class DRb::DRbConn

def self.open(remote_uri) # :nodoc:

:nodoc:
def self.open(remote_uri)  # :nodoc:
  begin
    @pool_proxy = make_pool unless @pool_proxy&.alive?
    conn = @pool_proxy.take(remote_uri)
    conn = self.new(remote_uri) unless conn
    succ, result = yield(conn)
    return succ, result
  ensure
    if conn
      if succ
        @pool_proxy.store(conn)
      else
        conn.close
      end
    end
  end
end