anchor.diff:  
   (defmethod close-tcp-server ((tcp-server tcp-server))
     (unless (tcp-server-closed tcp-server)
  +    (setf (tcp-server-closed tcp-server) t)
       (let ((server-c (tcp-server-c tcp-server)))
  -      (uv:uv-close server-c (cffi:null-pointer))
  -      (free-pointer-data server-c :preserve-pointer t)
  -      (uv:free-handle server-c)
  -      (setf (tcp-server-closed tcp-server) t))))
  +      (uv:uv-close server-c (cffi:callback tcp-close-cb)))))
   
   (defun set-socket-timeouts (socket read-sec write-sec &key socket-is-uvstream)
     "Set the read/write timeouts on a socket."
  
positive.code:   (check-event-loop-running)
    (let ((server-c (uv:alloc-handle :tcp)))
      (with-ip-to-sockaddr ((sockaddr) bind-address port)
        (uv:uv-tcp-init (event-base-c *event-base*) server)
        (let* ((r-bind (uv:uv-tcp-bind server-c sockaddr 0))
               (server-class (make-instance 'tcp-server
                                            :c server-c
  
negative.code: 
  (define-c-callback tcp-close-cb :void ((uvstream :pointer))
    "Called when a tcp socket closes."
    ;; !!NOTE!! This callback is used for both tcp clients AND servers! if either
    ;; ever needs special treatment, split out the callbacks
    (free-pointer-data uvstream :preserve-pointer t)
    (uv:free-handle uvstream))
  
  