Hi All,<br><br>Had a look over the NIO work, running ab2(apache-bench - <a href="http://httpd.apache.org/docs/2.2/programs/ab.html%29" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://httpd.apache.org/docs/2.2/programs/ab.html)
</a>) against it, and it seems to hold up pretty well when compared with
apache/mod_lisp2 and araneida (I'll post some results later on).<br><br>I ran into a memory leak, which the following patch fixed for
me. The patch is against the nio-20060204.tar.gz (doesn't look like the
cvs is up-to-date?) from the <a href="http://common-lisp.net/project/nio/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://common-lisp.net/project/nio/
</a> website.<br><br>I'm no lisp expert, so any feedback appreciated.<br><br>Cheers,<br><br>Paul.<br><br>nio-20060204$ diff async-fd.lisp.orig async-fd.lisp<br>184c184<br>< (with-slots (write-queue read-fd write-fd) async-fd
<br>---<br>> (with-slots (write-queue read-fd write-fd foreign-read-buffer) async-fd<br>189a190<br>> (foreign-free foreign-read-buffer)<br>216,220c217,226<br>< ;; remove entries that have been fully written
<br>< (setf write-queue (remove-if #'(lambda (x)<br>< (with-slots (size written) x<br>< (= size written)))<br>< write-queue))
<br>---<br>> ;; remove (and dealloc buffers) of entries that have been fully written<br>> (let ((unfinished-entries NIL))<br>> (setf write-queue<br>> (nreverse<br>> (dolist (entry write-queue unfinished-entries)
<br>> (with-slots (size written) entry<br>> (if (= size written)<br>> (with-slots (buffer) entry<br>> (foreign-free buffer))<br>> (push entry unfinished-entries)))))))
<br>