projects
/
kmrcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r5266: *** empty log message ***
[kmrcl.git]
/
listener.lisp
diff --git
a/listener.lisp
b/listener.lisp
index 59954057c4c98eeb7c3acccac29c89d8187c0d05..d37d72d924c54f51a3c82c948ba149e5d71667d0 100644
(file)
--- a/
listener.lisp
+++ b/
listener.lisp
@@
-7,7
+7,7
@@
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Dec 2002
;;;;
;;;; 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)
;;;; *************************************************************************
(in-package #:kmrcl)
@@
-46,7
+46,14
@@
(thread-fun :initarg :thread-fun :accessor thread-fun :initform nil)
(process :initarg :process :accessor process :initform nil)))
(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)
;; 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))
(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)
(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)
(setq *active-listeners* (remove listener *active-listeners*)))
(:restart
(init/listener listener :stop)