# File lib/redis/connection/synchrony.rb, line 68
      def self.connect(config)
        if config[:scheme] == "unix"
          conn = EventMachine.connect_unix_domain(config[:path], RedisClient)
        else
          conn = EventMachine.connect(config[:host], config[:port], RedisClient) do |c|
            c.pending_connect_timeout = [config[:timeout], 0.1].max
          end
        end

        fiber = Fiber.current
        conn.callback { fiber.resume }
        conn.errback { fiber.resume :refused }

        raise Errno::ECONNREFUSED if Fiber.yield == :refused

        instance = new(conn)
        instance.timeout = config[:timeout]
        instance
      end