anchor.diff:     (data :accessor socket-data :initarg data :initform nil
        :documentation "Used to store arbitrary (app-defined) data with a socket.")
      (buffer :accessor socket-buffer :initarg :buffer :initform (make-buffer)
  -     :documentation "Holds data sent on the socket before it's connected.")
  +     :documentation "Holds data sent on the socket that hasn't been sent yet.")
  +   (bufferingp :accessor socket-buffering-p :initform nil
  +     :documentation "Lets us know if the socket is currently buffering output.")
      (connected :accessor socket-connected :initarg :connected :initform nil)
      (closed :accessor socket-closed :initarg :closed :initform nil)
      (direction :accessor socket-direction :initarg :direction :initform nil)
  
positive.code:                     ;; usual. if not connected, buffer the write in the socket's
                      ;; write buffer until connected
                      (if (socket-connected socket)
                          (write-to-uvstream uvstream data)
                          (let ((bytes (if (stringp data)
                                           (babel:string-to-octets data :encoding :utf-8)
                                           data)))
  
negative.code:               (progn
                  (when connect-cb
                    (funcall connect-cb (or stream socket)))
                  ;; write any buffered output we've stored up
                  (write-pending-socket-data socket))
                (run-event-cb 'event-handler res event-cb :socket socket)))))))
  
  