# File lib/neovim/session/event_loop.rb, line 48
      def write(data)
        start = 0
        size = data.size
        debug("writing #{data.inspect}")

        begin
          while start < size
            start += @wr.write_nonblock(data[start..-1])
          end
          self
        rescue IO::WaitWritable
          IO.select(nil, [@wr], nil, 1)
          retry
        end
      end