Commit 8294685605e4282b3998c9807cf10be0d814d7c5

Thomas de Grivel 2017-06-29T18:24:03

only end worker if reading was done

diff --git a/thot-epoll.lisp b/thot-epoll.lisp
index 96750a8..b8246b8 100644
--- a/thot-epoll.lisp
+++ b/thot-epoll.lisp
@@ -98,7 +98,8 @@
          (reply (worker-reply worker))
          (babel-stream (reply-stream reply))
          (stream (stream-underlying-stream babel-stream)))
-    (cond ((= 0 (stream-output-length stream))
+    (cond ((and (null (worker-reader-cont worker))
+                (= 0 (stream-output-length stream)))
            (cond ((worker-keep-alive worker)
                   ;; read request body
                   (setf (worker-reader-cont worker)
@@ -188,7 +189,7 @@
         ((eq *acceptor-loop* 'acceptor-loop-threaded)
          (setq *worker-thread-for-fd* 'acceptor-loop-epoll))))
 
-(untrace socket:socket socket:bind socket:listen socket:accept
+(trace socket:socket socket:bind socket:listen socket:accept
        unistd:close
        epoll:create
        epoll-add epoll-del