[bknr-cvs] hans changed trunk/thirdparty/hunchentoot/acceptor.lisp

BKNR Commits bknr at bknr.net
Fri Feb 20 11:05:20 UTC 2009


Revision: 4303
Author: hans
URL: http://bknr.net/trac/changeset/4303

Make HUNCHENTOOT:STOP work again.

U   trunk/thirdparty/hunchentoot/acceptor.lisp

Modified: trunk/thirdparty/hunchentoot/acceptor.lisp
===================================================================
--- trunk/thirdparty/hunchentoot/acceptor.lisp	2009-02-20 07:26:37 UTC (rev 4302)
+++ trunk/thirdparty/hunchentoot/acceptor.lisp	2009-02-20 11:05:20 UTC (rev 4303)
@@ -114,7 +114,8 @@
 matter what kind of taskmaster you are using this will always be a new
 process different from the one where START was called.")
    #-:lispworks
-   (listen-socket :accessor acceptor-listen-socket
+   (listen-socket :initform nil
+                  :accessor acceptor-listen-socket
                   :documentation "The socket listening for incoming
 connections.")
    (acceptor-shutdown-p :initform nil
@@ -249,6 +250,8 @@
   (shutdown (acceptor-taskmaster acceptor))
   #-:lispworks
   (usocket:socket-close (acceptor-listen-socket acceptor))
+  #-:lispworks
+  (setf (acceptor-listen-socket acceptor) nil)
   acceptor)
 
 (defmethod initialize-connection-stream ((acceptor acceptor) stream)
@@ -347,6 +350,8 @@
 
 #-:lispworks
 (defmethod start-listening ((acceptor acceptor))
+  (when (acceptor-listen-socket acceptor)
+    (hunchentoot-error "acceptor ~A is already listening" acceptor))
   (setf (acceptor-listen-socket acceptor)
         (usocket:socket-listen (or (acceptor-address acceptor)
                                    usocket:*wildcard-host*)
@@ -361,7 +366,7 @@
     (loop
      (when (acceptor-shutdown-p acceptor)
        (return))
-     (when (usocket:wait-for-input listener :timeout +new-connection-wait-time+)
+     (when (usocket:wait-for-input listener :ready-only t :timeout +new-connection-wait-time+)
        (handler-case
            (when-let (client-connection (usocket:socket-accept listener))
              (set-timeouts client-connection





More information about the Bknr-cvs mailing list