anchor.diff:                                 (t
                                   local-port)))
                (listener (make-instance 'tcp-listener
  +                                      :pending-connections (make-hash-table :test 'equalp :size backlog)
                                         :connections (mezzano.sync:make-mailbox
                                                       :name "TCP Listener")
                                         :backlog backlog
  
positive.code: 
  (defun close-tcp-listener (listener)
    (mezzano.supervisor:with-mutex (*tcp-listener-lock*)
      (setf *tcp-listeners* (remove listener *tcp-listeners*))))
  
  (defun wait-for-connections (listener &key timeout)
    (mezzano.supervisor:event-wait-for ((tcp-listener-connections listener)
  
negative.code:         :do (unless (get-tcp-connection ip port local-ip local-port)
                (return local-port))))
  
  (defun abort-connection (connection)
    (setf (tcp-connection-state connection) :closed)
    (tcp4-send-packet connection
                      (tcp-connection-s-next connection)
                      (tcp-connection-r-next connection)
                      nil
                      :rst-p t)
    (detach-tcp-connection connection))
  
  (defun close-tcp-connection (connection)
    (ecase (tcp-connection-state connection)
      (:syn-sent
       (abort-connection connection))
      ((:established :syn-received)
       (setf (tcp-connection-state connection) :fin-wait-1)
       (tcp4-send-packet connection
  