# File lib/neovim/session/event_loop.rb, line 66
      def run
        @running = true

        loop do
          break unless @running
          message = @rd.readpartial(1024 * 16)
          debug("received #{message.inspect}")
          yield message if block_given?
        end
      rescue EOFError
        info("got EOFError")
      rescue => e
        fatal("got unexpected error #{e.inspect}")
        debug(e.backtrace.join("\n"))
      end