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

      while pending = @pending_messages.shift
        Fiber.new { yield pending if block_given? }.resume
      end

      return unless @running

      @rpc.run do |message|
        Fiber.new { yield message if block_given? }.resume
      end
    ensure
      shutdown
    end