# File lib/core/connection_driver.rb, line 99
    def write
      data = Cproton.pn_connection_driver_write_buffer(@impl)
      return unless data && data.size > 0
      n = @io.write_nonblock(data)
      Cproton.pn_connection_driver_write_done(@impl, n) if n > 0
    rescue Errno::EWOULDBLOCK, Errno::EAGAIN, Errno::EINTR
      # Try again later.
    rescue IOError, SystemCallError => e
      close e
    end