X-Git-Url: http://git.kpe.io/?p=cl-modlisp.git;a=blobdiff_plain;f=base.lisp;fp=base.lisp;h=24c1689d08413fe5ff4b73925c8956b412d90553;hp=04cfa381d42324476b2605e930c6082e986076ea;hb=40b5dce89637f3b90b71ee6ee3932aafa595640b;hpb=4545c194136bd916c6fd240a148804c5cccfec63 diff --git a/base.lisp b/base.lisp index 04cfa38..24c1689 100644 --- a/base.lisp +++ b/base.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Dec 2002 ;;;; -;;;; $Id: base.lisp,v 1.7 2003/07/08 14:00:53 kevin Exp $ +;;;; $Id: base.lisp,v 1.8 2003/07/08 16:12:03 kevin Exp $ ;;;; ************************************************************************* (in-package #:modlisp) @@ -17,48 +17,21 @@ (processor-args nil) (catch-errors t)) (let ((listener (make-instance 'listener :port port - :name (next-server-name) + :base-name "modlisp" :function 'apache-command-issuer :function-args (cons processor processor-args) :format :text :wait nil :catch-errors catch-errors))) - (handler-case - (make-socket-server listener) - (error (e) - (format t "~&Error while trying to start modlisp server~& ~A" e) - (decf *listener-count*) - (values nil nil)) - (:no-error (res) - (declare (ignore res)) - (push listener *active-listeners*) - listener)))) - + (init/listener listener :start))) + + (defun modlisp-stop (listener) - (unless listener - (cmsg "listener is NIL in modlisp-stop") - (return-from modlisp-stop)) - (dolist (worker (workers listener)) - (close-active-socket (connection worker)) - (destroy-process (process worker))) - (setf (workers listener) nil) - (with-slots (process socket) listener - (errorset (close-passive-socket socket) t) - (errorset (destroy-process process) t)) - (setq *active-listeners* (remove listener *active-listeners*))) + (init/listener listener :stop)) (defun modlisp-stop-all () - (dolist (listener *active-listeners*) - (ignore-errors - (progn - (modlisp-stop listener) - (setq *active-listeners* (remove listener *active-listeners*)))))) - -(defun next-server-name () - (format nil "modlisp-socket-server-~d" (incf *listener-count*))) + (stop-all/listener)) -(defun next-worker-name () - (format nil "modlisp-worker-~d" (incf *worker-count*))) (let ((*number-server-requests* 0) (*number-worker-requests* 0)