class Redis

def _subscription(method, timeout, channels, block)

def _subscription(method, timeout, channels, block)
  return @client.call([method] + channels) if subscribed?
  begin
    original, @client = @client, SubscribedClient.new(@client)
    if timeout > 0
      @client.send(method, timeout, *channels, &block)
    else
      @client.send(method, *channels, &block)
    end
  ensure
    @client = original
  end
end