anchor.diff:                                                    backlog
                                                     sockaddr
                                                     sockaddr-size))
  -           (server-class (make-instance 'tcp-server :c listener)))
  +           (server-class (make-instance 'tcp-server :c listener :stream stream)))
         (add-event-loop-exit-callback (lambda ()
                                         (close-tcp-server server-class)
                                         (free-pointer-data data-pointer)))
  
positive.code:              (le:evbuffer-drain (le:bufferevent-get-input bev) *buffer-size*))
              (t
               ;; we're not draining and we don't have a callback, so this is
               ;; probably sme sort of stream operation
               nil)))))
  
  (cffi:defcallback tcp-write-cb :void ((bev :pointer) (data-pointer :pointer))
  
negative.code:          (bev (le:bufferevent-socket-new event-base
                                           fd
                                           +bev-opt-close-on-free+))
           (callbacks (get-callbacks data-pointer))
           (server-class (deref-data-from-pointer data-pointer))
           (stream-data-p (tcp-server-stream server-class))
           (socket (make-instance 'socket :c bev :direction 'in :drain-read-buffer (not stream-data-p)))
           (stream (when stream-data-p (make-instance 'async-io-stream :socket socket)))
           (event-cb (getf callbacks :event-cb))
           (connect-cb (getf callbacks :connect-cb)))
      (catch-app-errors event-cb
        ;; attach our data-pointer/socket/stream class to the bev
        (attach-data-to-pointer bev (list :data-pointer per-conn-data-pointer
                                          :socket socket
                                          :stream stream))
  
        ;; track the connection. will be decf'ed when close-socket is called
        (incf *incoming-connection-count*)
  