Documentation
Start the RERL.
Source
(defmethod startup-backend ((backend httpd-backend) &rest init-args)
"Start the RERL."
(declare (ignore init-args))
(let (stream request response)
(labels ((serve-one-request ()
(setf stream (swank-backend:accept-connection (socket backend)
:external-format :iso-latin-1-unix)
request (read-request backend stream)
response (make-response request))
(handle-request backend request response))
(handle-request-error (condition)
(ucw.backend.error "While handling a request on ~S: ~S" stream condition)
(when *debug-on-error*
(restart-case
(swank:swank-debugger-hook condition nil)
(kill-worker ()
:report "Kill this worker."
(values))))
(throw 'abort-request nil))
(handle-request/internal ()
(catch 'abort-request
(handler-bind ((error #'handle-request-error))
(unwind-protect
(serve-one-request)
(ignore-errors (close stream)))))))
(unwind-protect
(loop (handle-request/internal))
(ignore-errors
(swank-backend:close-socket (socket backend))))))
backend)Source Context