# File lib/redis.rb, line 1947
  def watch(*keys)
    synchronize do |client|
      client.call [:watch, *keys]

      if block_given?
        begin
          yield
        rescue ConnectionError
          raise
        rescue StandardError
          unwatch
          raise
        end
      end
    end
  end