Tim wrote:


> Last I checked, the whole system will block on a socket write, which
> can definitely cause problems when webserving.

Well, checking CL-HTTPD's CMUCL code I noticed the following under 
cl-http-70-23/cmucl/server/tcp-interface-mp.lisp:


                       (let ((stream (www-utils::make-tcp-stream new-fd port)))
                         ;; Make it non-blocking.
----->                   #+nil
                         (unix:unix-fcntl new-fd unix:f-setfl unix:fndelay)
                         (listen-for-connection stream port)))))


someone has commented out the part that makes the socket use
nonblocking I/O.

So I went in there and took out the #+nil, and things don't seem to
hang --- yet.  In fact, it seems quite brisk.

I've also uncommented start-sigalrm-yield in cmucl/start.lisp and set
it as follows:

  (mp::start-sigalrm-yield 1 0)

This may not be necessary; I tried it before the above.

So things might not be as bad as they seemed.

-- 
Fred Gilham                                        [EMAIL PROTECTED]
And then [Clinton] turned to Hunter Thompson, of all people, and said
with wholehearted fervor, "We're going to put one hundred thousand new 
police officers on the street."
I was up all night persuading Hunter that this was not a personal
threat.                                              -- P. J. O'Rourke

Reply via email to