From f8ddd8423e2378c2f61f59ada19c1cbe928489f1 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Sat, 5 Jul 2003 22:59:56 +0000 Subject: [PATCH] r5240: *** empty log message *** --- base.lisp | 17 +++-------------- impl-cmucl.lisp | 24 ------------------------ impl-sbcl.lisp | 44 -------------------------------------------- modlisp.asd | 6 +++--- 4 files changed, 6 insertions(+), 85 deletions(-) delete mode 100644 impl-cmucl.lisp delete mode 100644 impl-sbcl.lisp diff --git a/base.lisp b/base.lisp index 649d82f..a72ac57 100644 --- a/base.lisp +++ b/base.lisp @@ -7,22 +7,11 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Dec 2002 ;;;; -;;;; $Id: base.lisp,v 1.4 2003/07/05 22:54:00 kevin Exp $ +;;;; $Id: base.lisp,v 1.5 2003/07/05 22:59:56 kevin Exp $ ;;;; ************************************************************************* (in-package #:modlisp) -(defun destroy-process (process) - #+sbcl (sb-thread:destroy-thread process) - #+cmucl (mp:destroy-process process) - #+allegro (mp:process-kill process) - #+lispworks (mp:process-kill process) - ) - -(defun close-socket (sock) - (ignore-errors (close sock))) - - (defun modlisp-start (&key (port +default-apache-port+) (function 'demo-apache-command-processor) (function-args nil)) @@ -46,7 +35,7 @@ (cmsg "listener is NIL in modlisp-stop") (return-from modlisp-stop)) (dolist (worker (workers listener)) - (close-socket (socket worker)) + (close-active-socket (socket worker)) (destroy-process (process worker))) (setf (workers listener) nil) (with-slots (process socket) listener @@ -55,7 +44,7 @@ (error (e) (format t "~&Error while trying to kill modlisp server~& ~A" e))) (when socket - (ignore-errors (close-socket socket)))) + (ignore-errors (close-passive-socket socket)))) (setq *active-listeners* (remove listener *active-listeners*))) (defun next-server-name () diff --git a/impl-cmucl.lisp b/impl-cmucl.lisp deleted file mode 100644 index c98a05e..0000000 --- a/impl-cmucl.lisp +++ /dev/null @@ -1,24 +0,0 @@ -;;; -*- Mode:Lisp; Syntax:Common-lisp; Package: modlisp; Base:10 -*- - -(in-package #:modlisp) - - -(defun make-socket-server (name function port &key wait (format :text)) - (let ((listener (ext:create-inet-listener port))) - (values - (mp:make-process - (lambda () (start-socket-server listener function)) - :name name) - listener))) - -(defun start-socket-server (listener function) - (unwind-protect - (loop - (mp:process-wait-until-fd-usable listener :input) - (multiple-value-bind (new-fd remote-host) - (ext:accept-tcp-connection listener) - (let ((stream (sys:make-fd-stream new-fd :input t :output t))) - (mp:make-process - (lambda () (apache-command-issuer stream function)) - :name (next-worker-name))))) - (unix:unix-close listener))) diff --git a/impl-sbcl.lisp b/impl-sbcl.lisp deleted file mode 100644 index 2b43d8e..0000000 --- a/impl-sbcl.lisp +++ /dev/null @@ -1,44 +0,0 @@ -;;; -*- Mode:Lisp; Syntax:Common-lisp; Package: modlisp; Base:10 -*- - -(in-package #:modlisp) - -(defun make-socket-server (name function port &key wait format) - (declare (ignore name)) - (let ((listener (listen-to-inet-port :port port :reuse 1))) - (values - (sb-thread:make-thread - (lambda () (start-socket-server listener function))) - listener))) - - -(defun start-socket-server (listener function) - (handler-case - (when (sb-sys:wait-until-fd-usable - (sb-bsd-sockets:socket-file-descriptor listener) :input) - (unwind-protect - (loop - (let* ((socket (sb-bsd-sockets:socket-accept listener)) - (stream (sb-bsd-sockets:socket-make-stream - socket - :element-type 'base-char - :input t :output t))) - (sb-thread:make-thread - #'(lambda () (apache-command-issuer stream function))))) - (sb-unix:unix-close - (sb-bsd-sockets:socket-file-descriptor listener)))) - (sb-kernel::timeout (c) - (format t "interrupted, time to die~%")))) - -(defun listen-to-inet-port (&key (port 0) (kind :stream) (reuse nil)) - "Create, bind and listen to an inet socket on *:PORT. -setsockopt SO_REUSEADDR if :reuse is not nil" - (let ((socket (make-instance 'sb-bsd-sockets:inet-socket - :type :stream - :protocol :tcp))) - (if reuse - (setf (sb-bsd-sockets:sockopt-reuse-address socket) t)) - (sb-bsd-sockets:socket-bind - socket (sb-bsd-sockets:make-inet-address "0.0.0.0") port) - (sb-bsd-sockets:socket-listen socket 15) - socket)) - diff --git a/modlisp.asd b/modlisp.asd index a89d61c..73a701d 100644 --- a/modlisp.asd +++ b/modlisp.asd @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Dec 2002 ;;;; -;;;; $Id: modlisp.asd,v 1.4 2003/07/05 22:54:00 kevin Exp $ +;;;; $Id: modlisp.asd,v 1.5 2003/07/05 22:59:56 kevin Exp $ ;;;; ************************************************************************* (in-package #:cl-user) @@ -28,12 +28,12 @@ :depends-on (:kmrcl) :components ((:file "package") - (:file "variables" :depends-on ("package")) (:file "compat" :depends-on ("package")) + (:file "variables" :depends-on ("package")) (:file #+(or allegro cmu sbcl) "server" #+clisp "impl-clisp" #+lispworks "impl-lispworks" - :depends-on ("compat")) + :depends-on ("compat" "variables")) (:file "base" :depends-on (#+(or allegro cmu sbcl) "server" #+clisp "impl-clisp" -- 2.34.1