anchor.diff:  
   (defun connection-handler (socket-server)
     (loop for connection = (socket-accept socket-server)
  -        do (sb-thread:make-thread #'create-client
  +        do (sb-thread:make-thread #'safe-client-thread
                                     :arguments (list connection)
                                     :name "create client")))
   
  
positive.code:                                                                *port*))
                        (sb-sys:interactive-interrupt () (format t "Closing the server...")))
        (socket-close socket-server)))
    (sb-ext:exit))
  
negative.code:                              :name (format nil "~a reader thread" (client-name client))
                               :arguments (list client)))))
  
  ;; a function defined to handle the errors of client thread
  (defun safe-client-thread (connection)
    (handler-case (create-client connection)
      (end-of-file () nil)
      (usocket:address-in-use-error () nil)))
  
  (defun message-broadcast ()
    (loop when (sb-thread:wait-on-semaphore *message-semaphore*)
            do (let ((message (formated-message (pop *messages-stack*))))
  