r5258: *** empty log message ***
[cl-modlisp.git] / server.lisp
index 1d27de4d40a3c1ebeb7d44dbba9af35ea26c5ac6..e3c6775356f849d7b66d262c3cc794a5aafc26b1 100644 (file)
   (setf (slot-value self 'thread-fun)
        #'(lambda ()
            (unwind-protect
-                (handler-case
-                    (apply (listener-function listener)
-                           connection
-                           (function-args listener))
-                  (error (e)
-                    (cmsg "Error ~A [~A]" e name)
-                    (error e)
-                    ))
+               (if (catch-errors listener)
+                   (handler-case
+                       (apply (listener-function listener)
+                              connection
+                              (function-args listener))
+                     (error (e)
+                       (cmsg "Error ~A [~A]" e name)))
+                 (apply (listener-function listener)
+                        connection
+                        (function-args listener)))
          (progn
            (errorset (close-active-socket connection) nil)
            (cmsg-c :threads "~A ended" name)