X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=listener.lisp;h=d37d72d924c54f51a3c82c948ba149e5d71667d0;hp=59954057c4c98eeb7c3acccac29c89d8187c0d05;hb=0ddc73d14e764eeaede64f92b620a0c6de46cfd3;hpb=7a31a7ff629ae760d9c3e3abedf6e03605f83f23 diff --git a/listener.lisp b/listener.lisp index 5995405..d37d72d 100644 --- a/listener.lisp +++ b/listener.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Dec 2002 ;;;; -;;;; $Id: listener.lisp,v 1.1 2003/07/08 16:12:40 kevin Exp $ +;;;; $Id: listener.lisp,v 1.2 2003/07/09 22:12:52 kevin Exp $ ;;;; ************************************************************************* (in-package #:kmrcl) @@ -46,7 +46,14 @@ (thread-fun :initarg :thread-fun :accessor thread-fun :initform nil) (process :initarg :process :accessor process :initform nil))) +(defmethod print-object ((obj listener) s) + (print-unreadable-object (obj s :type t :identity nil) + (format s "port ~A" (port obj)))) +(defmethod print-object ((obj worker) s) + (print-unreadable-object (obj s :type t :identity nil) + (format s "port ~A" (port (listener obj))))) + ;; High-level API (defun init/listener (listener state) @@ -74,11 +81,15 @@ (return-from init/listener listener)) (dolist (worker (workers listener)) (close-active-socket (connection worker)) - (destroy-process (process worker))) + (destroy-process (process worker)) + (setf (connection worker) nil) + (setf (process worker) nil)) (setf (workers listener) nil) (with-slots (process socket) listener (errorset (close-passive-socket socket) t) - (errorset (destroy-process process) t)) + (errorset (destroy-process process) t) + (setf process nil) + (setf socket nil)) (setq *active-listeners* (remove listener *active-listeners*))) (:restart (init/listener listener :stop)