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