r5258: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 8 Jul 2003 14:00:53 +0000 (14:00 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 8 Jul 2003 14:00:53 +0000 (14:00 +0000)
README
base.lisp
debian/changelog
server.lisp
variables.lisp

diff --git a/README b/README
index afe3b15060448547856db33e130f61e530197b8c..439c8a1a7540e41a276794099bd4844a5e1df800 100644 (file)
--- a/README
+++ b/README
@@ -1,11 +1,34 @@
+INTRODUCTION
+------------
 This package provided the Lisp side of the interface to Marc
 Battyani's mod_lisp apache module (http://www.fractalconcept.com).
 
-It has robust support for multiprocessing and for keeping track
-of worker processes allow for cleaning shutting down the server
-and all associated proceses and sockets.
+cl-modlisp has cross-implementation support for sockets and
+multiprocessing.  This packages maintains a list of listener processes
+and sockets as well as worker processes and sockets. cl-modlisp will
+cleanly close sockets and kill processes when a listener is stopped.
 
 
+REREQUISITES
+------------
 
+1. Apache 1.3.x
+2. mod_lisp apache module (http://www.fractalconcept.com)
+3. cl-kmrcl library (http://files.b9.com/kmrcl)
+4. asdf 
 
+QUICKSTART
+----------
 
+1. Install mod_lisp as described on the mod_lisp web site
+2. Add something like the below to httpd.conf and then restart apache
+      LispServer 127.0.0.1 20123 "localhost"
+      AddHandler lisp-handler .lsp
+3. Load cl-modlisp and cl-kmrcl
+4. Start the server with 
+      (ml:modlisp-start :port 20123))
+5. Try some demostration pages
+      lynx http://localhost/fixed.lsp
+      lynx http://localhost/debug.lsp
+6. Shutdown the all cl-modlisp servers with
+     (ml:modlisp-stop-all)
index bcf84b5e049c22fb46e56ababd74bf9ab3c4d1e2..04cfa381d42324476b2605e930c6082e986076ea 100644 (file)
--- a/base.lisp
+++ b/base.lisp
@@ -7,20 +7,22 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Dec 2002
 ;;;;
-;;;; $Id: base.lisp,v 1.6 2003/07/08 06:40:00 kevin Exp $
+;;;; $Id: base.lisp,v 1.7 2003/07/08 14:00:53 kevin Exp $
 ;;;; *************************************************************************
 
 (in-package #:modlisp)
 
 (defun modlisp-start (&key (port +default-apache-port+)
                           (processor 'demo-apache-command-processor)
-                          (processor-args nil))
+                          (processor-args nil)
+                          (catch-errors t))
   (let ((listener (make-instance 'listener :port port
                                 :name (next-server-name)
                                 :function 'apache-command-issuer
                                 :function-args (cons processor processor-args)
                                 :format :text
-                                :wait nil)))
+                                :wait nil
+                                :catch-errors catch-errors)))
     (handler-case
        (make-socket-server listener)
       (error (e)
index ccfe6e2fb0dd5214012b4a1ff5fc377c9a9ecbe4..20f88b87bb8c27a92dd3a488c0e22aa8f9412f75 100644 (file)
@@ -1,3 +1,9 @@
+cl-modlisp (0.3-1) unstable; urgency=low
+
+  * New version
+
+ -- Kevin M. Rosenberg <kmr@debian.org>  Tue,  8 Jul 2003 07:45:08 -0600
+
 cl-modlisp (0.2-1) unstable; urgency=low
 
   * New upstream version
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)
index f107c38bb26f2f3823febe10739147b4f162688e..4e8958a1dc89cc0245a4528818805872528609b9 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Dec 2002
 ;;;;
-;;;; $Id: variables.lisp,v 1.5 2003/07/08 06:40:00 kevin Exp $
+;;;; $Id: variables.lisp,v 1.6 2003/07/08 14:00:53 kevin Exp $
 ;;;; *************************************************************************
 
 (in-package #:modlisp)
@@ -40,6 +40,7 @@
            :documentation "list of worker threads")
    (name :initform "" :accessor name :initarg :name)
    (wait :initform nil :accessor wait :initarg :wait)
+   (catch-errors :initform nil :accessor catch-errors :initarg :catch-errors)
    (format :initform :text :accessor listener-format :initarg :format)))
 
 (defvar *active-listeners* nil