# File lib/mongo/mongo_sharded_client.rb, line 92
    def connect(force = !@connected)
      return unless force
      log(:info, "Connecting...")
      @connect_mutex.synchronize do
        discovered_seeds = @manager ? @manager.seeds : []
        @old_managers << @manager if @manager
        @manager = ShardingPoolManager.new(self, discovered_seeds | @seeds)

        thread_local[:managers][self] = @manager

        @manager.connect
        @refresh_version += 1
        @last_refresh = Time.now
        @connected = true
      end
    end