I perhaps should have mentioned some of this earlier.
For some time I've had a nightly build of clisp from cvs and
ap5 from that clisp build on a fedora 4:
Linux don-eve.dyndns.org 2.6.17-1.2142_FC4
For a shorter time I've had a similar build on a fedora 10:
Linux number11.don-eve.dyndns.org 220.127.116.11-170.2.5.fc10.x86_64
(just downloaded but haven't started running an update to
For an even shorter time I've been nightly building both mt and
non-mt clisps and ap5 in both. The ap5 build for mt now uses the
rwlock code donated by Vladimir.
I've tried a few examples of mt that seem to work.
(They're not included in the nightly tests.)
Here's an example of generating results from the database in a
timeout. Of course, the timeouts here almost certainly occur in
sleeps, so this certainly does not show that the code is "correct"
with respect to timeouts. Not to mention the fact that, as far as
I know, we don't yet have deferred aborts, which is required for
(loop for j below 4 do
(let ((i j))
(format t " start read ~a~%" i)
(withreadaccess ;; outside timeout -- see sys-depend
((+ 1 i) (format t " timeout read ~a~%" i))
(loop for r s.t. (relationarity r i) do
(format t " read ~a ~a~%" i r)
(sleep (/ 1 (+ 1 i))))
(format t " finish read ~a~%" i))))
:name (format nil "read~a~%" i))))